C语言中,return语句怎么样返回一个数组?

 我来答
White_MouseYBZ
2017-08-21 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6480万
展开全部

首先,C/C++只能返回数组的指针而不能返回整个数组。即使返回数组的指针,但如果函数中的数组是自动性质,那将是危险的。这是比较正宗的表述。如果确实需要从函数中返回自动性质的数组的全部元素值,有没有办法呢?有。由于C/C++是允许返回结构体的,可以定义一个结构体模板,把数组作为成员安排在其中,函数中临时声明结构体变量,操作其中的数组;完毕后返回结构体变量,在主调函数中用同类型的结构体变量接收就可间接实现“返回一个数组”。举例代码如下:

#include "stdio.h"
struct A{
int m[30];//把数组m安排在结构体A中
};
struct A fun(int n){
int i,j,k;
struct A s;//在函数中声明自动型结构体变量s
for(i=0;i<n;s.m[i++]=i+1);//为结构体成员数组m赋值1~15
for(j=n-1,i=0;i<j;i++,j--)//倒序这个数组
k=s.m[i],s.m[i]=s.m[j],s.m[j]=k;
return s;//返回结构体变量s
}
int main(int argc,char *argv[]){
A a;//主调函数中声明同类型结构体变量a接收函数fun的返回值
int i;
a=fun(15);//用15调用fun(不要大于30,只是举例),将结果赋于a
for(i=0;i<15;i++)//输出看看是不是倒序了...
printf("%d ",a.m[i]);
printf("\n");
return 0;
}

运行结果如下:

TableDI
2024-07-18 广告
在Excel中,字符串匹配函数主要用于查找和定位特定字符串在文本中的位置或进行替换操作。常用的字符串匹配函数包括FIND、SEARCH、SUBSTITUTE和REPLACE等。FIND和SEARCH函数用于查找字符串的位置,而SUBSTIT... 点击进入详情页
本回答由TableDI提供
匿名用户
2013-09-16
展开全部
可以反回“堆”(非栈)上的数组的首地址.如:int *fun(int s){int *a;a=(int*)new char[s*sizeof(int))];return a;}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
你丶好
2017-08-04 · 超过26用户采纳过TA的回答
知道答主
回答量:88
采纳率:87%
帮助的人:34.3万
展开全部
可以将函数类型定义为指针类型,return返回数组指针
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小罗卜头LMY
2017-08-13 · TA获得超过184个赞
知道小有建树答主
回答量:141
采纳率:66%
帮助的人:39.5万
展开全部
c语言的函数中不能返回多个参数,如果要返回数组,可以返回数组的首地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
k寂寞的小炮
2017-07-11 · TA获得超过464个赞
知道小有建树答主
回答量:469
采纳率:59%
帮助的人:180万
展开全部
int[] f(){
int[] a = {1,2,3};
return a;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式