knrt.net
当前位置:首页 >> C语言函数可以返回指针吗 >>

C语言函数可以返回指针吗

返回指针 要看这个局部指针变量在函数运行后 保存了哪个空间的地址了指针里的值是可以返回的 就像你说的 “ return i,主调函数知道一个i就可以了 ”同样主函数 知道一个指针里的地址就可以了.但是这个地址入口的空间现在可用否,那要看具体情况了1 此地址所指向的空间 是个局部变量 也就是存在栈区,那么在申请次局部变量的函数结束时,局部变量被释放,用户没有使用他的权限了 出错2 此地址所指向的空间 不是局部变量,比如是个静态变量 全局变量 或者是malloc申请的存在堆中的,那么他就不是你随着函数的离去二离去了,他任然存在,结果可用 正确

在subString中定义一个局部变量指针,比如p,该指针指向 传入subString的指针入参,这个入参是在调用subString的函数中定义的数组之类的,然后在subString中返回p就行了.

主要就是递归调用,指针链表之类的作用吧.指针是c中的精华,不懂指针就不懂c.

在函数体内出现动态分配内存的情况,就需要考虑返回指针.比如上述函数返回类型为字符串,实际一般是返回一个char指针,因为如果是用string来代替返回,在这个字符串相当庞大的时候将会造成很大的临时空间开销.

举个两个整数加法的例子,希望对你有帮助:#include #include 声明指向函数的指针类型fpAdd,该类型的函数,有两个整数作为参数,返回值是一个整数.其他类型的函数指针声明方式类似,即:typedef 函数返回值类型 (*函数指针类型名称

某方面说对.函数返回的声明一个就是一个,每一个参数或者返回值只对应一个地址,不能把一段数据传入,所以只有使用指针.

是可以返回 struct 实例而不仅是指针的.

你的陈述不太全,缺返回的指针指向的类型.写法如下:char *(*p)(int,int);//声明p是指向一个具有两个int型形参的函数,函数返回一个char *型指针.

返回它的地址不就行了么,指针数组的首地址就可以了比如 有一个指针数组 char *p[10] = {这里面放的都是指针},那么p的类型就是char **类型你定义一个函数,返回char **类型就行了比如char **fun(){ char **s; return s;}

首先,你不应该返回局部变量的指针,因为局部变量在离开函数后就会被销毁.如果你想这样返回一个数组的话,你应该malloc出一个数组来返回.至于应该return什么,return (malloc出来的那个指针)就可以了.例如int** foo(){int **p = (int **)malloc(sizeof(int *)*10); return p;}这个p指向一个内存段,这个内存段存有十个int*类型的元素.

网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com