189 8069 5689

c语言函数指针传递 c语言函数传递指针参数的问题

请问在C语言中,函数传参时怎样利用指针传递数组

数组名就是指针,例如:

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:申请域名、网络空间、营销软件、网站建设、余庆网站维护、网站推广。

#include stdio.h

void pr(char *p)

{

printf(p);

}

void main(void)

{

char s[] = "abc";

pr(s);

}

扩展资料:

注意事项

非数组类的声明尽量以指针的方式进行比较好。倘若一个指针指向的内存并不是一个数组,那么采用数组名的声明方式或许就会给人产生错误的引导。类似的,如果指向的是一个数组区域,则会给人以更加丰富的信息。例如:

int main(int argc,char* argv[])

{

/* code here */

}

int main(int argc,char** argv)

{

/* code here */

}

两种方式完全等价,但是前面一种能够更清晰地看出:这个参数是指向某个元素起始地址的指针,而后面的这种方式则不能够直观地看出这种含义。

C语言指针与函数传递问题,急急急!

所谓对应其实是参数形式上的对应。上面的两个函数都要求传递一个指针类型。并且还是双指针类型。c的编译器执行的是字面上的语义检查,并不实际追究这个参数真是子函数需要的。而你传递参数的正确与否在运行时才能反映出来。尤其是指针,传递一个错误的指针基本会导致你的程序运行不成功,或者直接终止运行。

上面你的代码中你给你的子函数传递一个int 类型的值,编译器肯定会报错,但是你用显式类型转换将int转换成双指针类型就骗过了编译器。比如这样:

int test=0x00400000;

shell_sort((char**)test,n);

编译通过,运行必然出错。

C语言指针在函数中的传递问题?

*x++和*x = *x + 1完全两个意思,你这是误会了。

提示一下,跟指针没什么关系,和优先级有关。

关于C语言函数传递指针参数,帮我看看我的程序

你的地址值传递错误,按照我给你修改的试试看,一定要注意你的实参传递的是地址还是具体的值,如果是地址,在子函数中就不要去修改你传递进来的地址。

int

main(void)

{

int

data=0;

//此处随机分配内存空间,不要用指针

myStack=makeStack(myStack,top);

Push(myStack,3);

Push(myStack,8);

Push(myStack,19);

Push(myStack,31);

Push(myStack,43);

Push(myStack,36);

Pop(myStack,data);//此处,传递的是地址值

printf("%d

",data);

}

int*

Pop(LinkedStack

myStack,int

*data)

{

pStack

cursor=myStack;

if(Stack_Empty())

{

}

else

{

while(cursor-next!=top)

{

cursor=cursor-next;

}

*data=top-data;

//此处,只是在同一个内存空间修改其值,所以不要取地址

top=cursor;

return

data;

}

}


当前文章:c语言函数指针传递 c语言函数传递指针参数的问题
文章起源:http://jkwzsj.com/article/ddsoeos.html

其他资讯