C语言调用数组返回数组怎么做?

2022-08-08 教育 128阅读

#include

#define MIN(x,y)

int * add_1();

main()

{

int * p = add_1();

int b[5];

for(int i=0;i<5;i++)

{

b[i] = *(p+i);

}

for(i=0;i<5;i++)

{

printf("%d",b[i]);

}

}

int * add_1()

{

int static a[5]={1,2,3,4,5};

return a;

}

扩展资料:

注意事项

一、该数组不能是返回函数的局部变量数组,因为局部变量数组在退出函数后会被释放。

可以是全局变量,静态局部变量,动态分配内存,以及从函数参数传过来的数组地址。

二、返回指针时,无法返回长度,所以需要其它方式传回数组长度,以下是几种常用的方法。

1、约定固定长度。

2、以函数参数返回数组长度。

3、将长度保存在全局变量中。

4、约定数组结束标记。

5、在数组中存储数组长度,如存在第一个元素中。

有些时候需要子函数将一个数组返回出来,通常是两种方法,一种是靠指针,另一种是结构体。

例如指针:

#include

char *test(char *tmp)

{

return tmp;

}

void main(void)

{

printf("%s",test("第一个测试例子\n"));

}

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com