返回指针的函数有什么用,返回指针的函数问题

1,返回指针的函数问题指针本事的存储内容就是一个地址 用指针肯定返回的就是一个地址 这个地址中存储的内容是返回函数的起始地址内部变量被撤消后你的指针就是野指针了,当然也有办法的,就是在函数内部new出来一个指针,然后传出来,这个有点违背谁申请谁释放的原则,但是有时候也必须这么做.回答补充:野指针使用当然会出问题,如果运气好的话,可能看不出来,因为指向的空间没有被其他变量使用.new或者malloc出来的空间在windows堆中,不是在栈中,所以函数退出的时候,空间并没有弹出,另外与语言本身也有关系,c或者c++没有自动垃圾回收机制
2,返回函数指针的函数解释该函数的函数名是ff,它带有一个int型的形参,函数返回int (*)(int *,int);返回值是一个指向函数的指针,所指向的函数返回int型并带有两个分别是int*和int型的形参 。使用typedef可是该定义更简明易懂:typedef int (*PF)(int *,int);//定义返回的函数指针的类型的别名PF ff(int);//定义ff函数 详细参考《C++Primer中文版(第4版)》P239你这种情况比较复杂!该函数的函数名是ff,它带有一个int型的形参 , 函数返回int(*)(int*,int);返回值是一个指向函数的指针,所指向的函数返回int型并带有两个分别是int*和int型的形参 。使用typedef可是该定义更简明易懂:typedefint(*pf)(int*,int);//定义返回的函数指针的类型的别名pfff(int);//定义ff函数详细参考《c++primer中文版(第4版)》p239函数ff的参数是int, ff的返回值是一个函数指针这个返回的函数指针的参数是int*和int, 这个函数指针指向的函数的返回值是int
3,返回指针值的函数我看了一下,楼主的程序有些不必要的语句:我修改了一下,但总体没有改 , 一些出错的地方我已表明,出错的主要原因是类型赋值的错误?。。?include <stdio.h>void main()void fun(float score[],float sum,float num[],int &i); float score[4],sum=0,num[4];//注意sum赋初始值,更要的是num[]的数据类型是float不是int,这是出错的主要原因 inti,j; for(i=0;i<4;i++)scanf("%f",&score[i]);//printf("%5.1f",score[i]); }printf("\n");for(i=0;i<4;i++)sum+=score[i]; } sum/=4; printf("平均分的学生%5.1f\n",sum); fun(score,sum,num,i); for(j=0;j<i;j++)printf("低于平均分的学生%5.1f\n",*(num+j));}getchar();getchar();}voidfun(float score[],float sum,float num[],int &k)//使用了&k的引用是为了计算低于平均值的个数 int i,n=0;for(i=0;i<4;i++)//printf("%5.1f\n",score[i]);if(score[i]<sum)num[n]=score[i];n++;k--;printf("%5.1f\n",num[n-1]);//printf("%5.1f\n",score[i]);} }}您的后一个例子中,虽然str是在动态变量区,而该动态变量是局部的,函数结束时不保留的 。但是,字符串"hello"不是变量,而是一个常量,编译程序在处理这种常量时,通常把它放在了常量区中 。而常量区则是始终存在的 。后一个例子中函数fun的返回值就是一个指向这种常量区的指针 。函数返回指针,要使主程序可以使用这个指针来访问有意义的数据,关键就是要保证在使用这个指针值的时候 , 该指针所指向的地方的数据仍然有意义 。除了您所说的:用静态区以及用malloc这样的方法外,还有就是第二个例子里的:用常量区 。再另外 , 还可以用全局变量,也就是说返回的指针是指向全局变量的 。还有,如果指针是指向函数的指针 , 那么这个指针就是指向程序代码区的 。这也是一种应用的情况 。另外,如果明白了它的原理,程序员还可以发明出一些其他灵活的使用方法 , 当然,那都属于“怪”方法,一般不提倡的 。【总结】常规程序中,函数返回的指针通常应该是:(1)指向静态(static)变量;(2)指向专门申请分配的(如用malloc)空间;(3)指向常量区(如指向字符串"hello");(4)指向全局变量;(5)指向程序代码区(如指向函数的指针) 。除这5项以外,其它怪技巧不提倡 。【返回指针的函数有什么用,返回指针的函数问题】

    推荐阅读