大家好,今天小编关注到一个比较有意思的话题,就是关于c语言返回数组的函数指针的问题,于是小编就整理了3个相关介绍c语言返回数组的函数指针的解答,让我们一起看看吧。
《C专家编程》:函数如何返回一个数组?
下面几种函数的写法都是等价的:
加不加*号,加多少*号,都是一样的。
《C专家编程》里说:这是一个在ANSI C中流行的不良方法,即调用函数和通过指针调用函数(或任意层次的指针间接引用)使用同一种语法。至于数组,也有对应的方法。这种做法进一步恶化了本来就有缺陷的“声明与使用相似”的设计哲学。
c语言中调用函数的返回值,如果是数组,主函数要输出这个数组怎么啊?
一般用函数的参数传递。如果要通过函数返回值传递,可以用指针,另外保存数据的变量退出函数时不得消失。例如:
#include<stdio.h>*fun(intn){inti;staticinta[100]
;//这里用staticfor(i=0;i<n;i++)a[i]=i;return&a[0];
}voidmain(){inti,n=5;int*p;//声明指针p=fun(n)
;//返回指针for(i=0;i<n;i++)printf("%d",p[i])
;//把p看成数组来输出}得01234
我如何从函数返回一个字符数组?
C语言返回值不支持返回数组,不过可以通过返回指针类型,用以替代数组。在C语言中,数组大多数时候是可以用指针替代的。不过需要注意的是,不能够返回在函数内部定义的局部变量数组,因为一旦函数退出,局部变量就会被释放,导致数组指针无效。可以返回以下几种:
2 静态局部变量,或者静态局部变量内部的一个地址。
3 从参数传入的数组/指针变量,或者在其上做的合法偏移。
到此,以上就是小编对于c语言返回数组的函数指针的问题就介绍到这了,希望介绍关于c语言返回数组的函数指针的3点解答对大家有用。