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

 我来答
大野瘦子
高粉答主

2019-07-11 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:34.5万
展开全部

用指针,另外保存数据的变量退出函数时不得消失。

例如:

#include<stdio.h>

int * fun(int n)

{

int i;

static int a[100]; // 这里用static

for (i=0;i<n;i++) a[i]=i;

return &a[0];

}

void main()

{

int i,n=5;

int *p; // 声明指针

p = fun(n); // 返回指针

for (i=0;i<n;i++) printf("%d\n",p[i]); // 把 p 看成数组来输出

}

得 0 1 2 3 4

扩展资料:

注意事项

1、数组的维度必须是一个常量表达式

int main(void)

{

constexpr int i = 20;

int j = 5;//不是常量表达式

int arr1[i];//正确

int arr2[j];//错误

system("pause");

return 0;

}

2、默认情况下,数组的元素被默认初始化。

而且需要注意的是,和内置类型的变量一样,如果在函数内部定义了某种内置类型的数组,那么默认初始化会令数组有未定义的值。

L_o_o_n_i_e
推荐于2017-11-28 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5230万
展开全部
一般用 函数的 参数传递。
如果要通过函数返回值传递,可以用指针,另外保存数据的变量退出函数时不得消失。
例如:
#include<stdio.h>
int * fun(int n)
{
int i;
static int a[100]; // 这里用static
for (i=0;i<n;i++) a[i]=i;
return &a[0];
}

void main()
{
int i,n=5;
int *p; // 声明指针
p = fun(n); // 返回指针
for (i=0;i<n;i++) printf("%d\n",p[i]); // 把 p 看成数组 来 输出
}
得 0 1 2 3 4
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanfustudio
2011-05-06 · TA获得超过1万个赞
知道大有可为答主
回答量:5513
采纳率:100%
帮助的人:3762万
展开全部
没看见过这种用法,如果你的数组是局部变量,不能作为返回值,因为函数返回数组就被释放掉了(栈内存)
如果是全局变量数组,对数组操作的同时数据已经发生改变,不需要返回
如果是动态数组,以指针类型返回
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rainbow_0923
2011-05-08
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
int * func()
{
...
return (int *)array; // 注意返回的不能是func的局部变量
}
void main()
{
int *p;
...
p = func();
for(i=0;i<n;i++) {
printf("%d: %d\n", p[i]);
}
...
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式