C语言中函数的传指针调用 c语言传入指针

C语言函数指针调用void point(char *p){ p =3; } //加上void比较好
char b[4]={'a','b','c','d'}, *p=b; //写在同一行,p是char*的
【C语言中函数的传指针调用 c语言传入指针】point(p);// 这里传递的是指针 , 在函数里面改指针是“临时变量”,不是局部变量
//临时对象不会被记录 , 如果改p指向的内存就可以被记录 。
printf("%c\n", *p); // 输出结果为a,因为p是扔指向b[]其实位置
答案为a
C语言调用函数指针并不是不规范的问题,你子程序写法只能在子程序中输出正确的数据,而在主函数中无法得到交换过的x和y的值 。参考程序运用指针让子程序去读写a和b的值 , 在子程序执行完成后 , a和b的值确实得到了交换 。
你的程序中子程序采用的不是指针类型参数 , 这样子程序无法将交换过后的值传回来 。
有关于c语言中函数调用和指针函数参数用值传递时 , 函数的形参只不过是实参的拷贝而已 。也就是说,1中调用swap函数时,内存中实际上a,b,x,y四个变量都存在,x是a的拷贝,y是b的拷贝 , 对x,y的值进行交换,a,b的值并未交换 。
而2中用了指针传递 , swap中的a,b,实际上是指向了main中的a,b 。这个swap中交换的是a,b指向的变量的值 , 也就是交换了main中的a,b的值 。
C语言中函数的传指针调用的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言传入指针、C语言中函数的传指针调用的信息别忘了在本站进行查找喔 。

    推荐阅读