c语言指针作为函数返回值 c语言返回指针的函数

C语言指针作函数参数时的返回问题首先 , 弄懂函数参数都是靠值传递 。指针也是 。
进入函数后,函数创建几个空间给形参 , 再把实参数值拷过来 。退出函数时,把形参空间释放,则影响不到实参 。这就是值传递 。
swap(int *p1,int *p2)函数首先创建两个空间,是指针 , 再把实参复制过来,即p1=pointer_1=a,p2=pointer_2=b,改变p1,p2就分别指向了a,b.改变p1指向的值就是改变了a 。然后交换*p1,*p2,ab就互换了 。函数退出 , 释放p1,p2所占的内存空间 。但是a,b值互换了 。swap函数没有改变实参pointer_1,pointer_2的内容,只是借助指针实现了巧妙的乾坤大挪移 。
学到c++后有个引用例外,那是后话了 。
++++++++++++++++++++++华丽丽的分割线+++++++++++++++++++++
其实很简单 , 不要硬记规律,要理解了 。
第二个例子中swap(int x,int y)没有改变原来实参a,b的值
第一个例子中swap(int *p1,int *p2)也没有改变原来两个实参pointer_1,pointer_2的值,他们值分别是是a,b地址 , 但pointer_1,2指向的内容改变了,改的是以pointer_1,pointer_2的值为地址的内存单元的值 。
C语言 关于指针函数返回值struct student *p, *q, *head;
这里head不就是 struct student 类型c语言指针作为函数返回值的指针么 。
指针类型可以返回-1你询问的是“C语言中指针类型可以返回-1”的问题吗?是可以返回值为-1的地址的 。
C语言允许函数的返回值是一个指针(地址),我们将这样的函数称为指针函数 。所以其意义是指向地址为“-1”的变量值索引 。
需要注意的是,用指针作为函数返回值时需要注意的一点是,函数运行结束后会销毁在它内部定义的所有局部数据,包括局部变量、局部数组和形式参数,函数返回的指针请尽量不要指向这些数据,C语言没有任何机制来保证这些数据会一直有效,它们在后续使用过程中可能会引发运行时错误 。
【c语言指针作为函数返回值 c语言返回指针的函数】c语言指针作为函数返回值的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言返回指针的函数、c语言指针作为函数返回值的信息别忘了在本站进行查找喔 。

    推荐阅读