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

指针类型可以返回-1你询问的是“C语言中指针类型可以返回-1”的问题吗?是可以返回值为-1的地址的 。
【c语言指针做函数返回值 c++指针作为函数返回值】C语言允许函数的返回值是一个指针(地址),我们将这样的函数称为指针函数 。所以其意义是指向地址为“-1”的变量值索引 。
需要注意的是,用指针作为函数返回值时需要注意的一点是,函数运行结束后会销毁在它内部定义的所有局部数据,包括局部变量、局部数组和形式参数,函数返回的指针请尽量不要指向这些数据,C语言没有任何机制来保证这些数据会一直有效,它们在后续使用过程中可能会引发运行时错误 。
C语言指针作函数参数时的返回问题首先c语言指针做函数返回值,弄懂函数参数都是靠值传递 。指针也是 。
进入函数后,函数创建几个空间给形参 , 再把实参数值拷过来 。退出函数时,把形参空间释放 , 则影响不到实参 。这就是值传递 。
swap(int *p1,int *p2)函数首先创建两个空间,是指针,再把实参复制过来,即p1=pointer_1=a,p2=pointer_2=b,改变p1,p2就分别指向c语言指针做函数返回值了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的值,c语言指针做函数返回值他们值分别是是a,b地址,但pointer_1,2指向的内容改变了,改的是以pointer_1,pointer_2的值为地址的内存单元的值 。
C语言 关于指针函数返回值struct student *p, *q, *head;
这里head不就是 struct student 类型的指针么 。
C语言指针作为函数参数,返回值为0那你应该用指针的指针才行 , 然后函数返回指针 。
double *a(double **p)
{
*p=.... //修改指针所指向的地址
...
return *p; //返回指针p指向的地址
}
int main()
{
double *p=... //初始化指针p
double *q;//用于接收改变的指针
...
q=a(p);//将指针p的地址传递给a
...
return 0;
}
如果是用作dll的话,那么你应该使用和相应语言兼容的类型才行
c语言指针做函数返回值的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c++指针作为函数返回值、c语言指针做函数返回值的信息别忘了在本站进行查找喔 。

    推荐阅读