c语言返回数组的函数指针,c语言返回数组的函数指针是什么

dfnjsfkhak 4 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言返回数组函数指针问题,于是小编就整理了3个相关介绍c语言返回数组的函数指针的解答,让我们一起看看吧。

  1. 《C专家编程》:函数如何返回一个数组?
  2. c语言中调用函数的返回值,如果是数组,主函数要输出这个数组怎么实现啊?
  3. 我如何从函数返回一个字符数组?

《C专家编程》:函数如何返回一个数组?

下面几种函数的写法都是等价的:

加不加*号,加多少*号,都是一样的。

c语言返回数组的函数指针,c语言返回数组的函数指针是什么-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

《C专家编程》里说:这是一个在ANSI C中流行的不良方法,即调用函数和通过指针调用函数(或任意层次的指针间接引用使用同一种语法。至于数组,也有对应的方法。这种做法进一步恶化了本来就有缺陷的“声明与使用相似”的设计哲学。

c语言中调用函数的返回值,如果是数组,主函数要输出这个数组怎么啊?

一般用函数的参数传递。如果要通过函数返回值传递,可以用指针,另外保存数据变量退出函数时不得消失。例如:

#include<stdio.h>*fun(intn){inti;staticinta[100]

c语言返回数组的函数指针,c语言返回数组的函数指针是什么-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

;//这里用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])

c语言返回数组的函数指针,c语言返回数组的函数指针是什么-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

;//把p看成数组来输出}得01234

我如何从函数返回一个字符数组?

C语言返回值不支持返回数组,不过可以通过返回指针类型,用以替代数组。在C语言中,数组大多数时候是可以用指针替代的。不过需要注意的是,不能够返回在函数内部定义的局部变量数组,因为一旦函数退出,局部变量就会被释放,导致数组指针无效。可以返回以下几种:

1 全局变量,或者全局变量空间内的一个地址

2 静态局部变量,或者静态局部变量内部的一个地址。

3 从参数传入的数组/指针变量,或者在其上做的合法偏移。

4 在数组内部动态申请的空间首地址。

到此,以上就是小编对于c语言返回数组的函数指针的问题就介绍到这了,希望介绍关于c语言返回数组的函数指针的3点解答对大家有用

标签: 数组 函数 指针