c语言中如何使返回值为数组

[复制链接]
查看11 | 回复4 | 2017-9-3 01:40:56 | 显示全部楼层 |阅读模式
1、注意C/C++不能直接返回一个数组。这是由于在C/C++中,数组不是一种类型,因此不能被直接返回。2、在C/C++中,一般有两种方法来返回一个数组。第一种方法:返回一个指向数组的指针,例如char (*retArray)[10]声明了一个函数retArray,该函数可以返回指向具有10个char元素的数组例子如下:#include#includeint (*retArray())[10]{int (*a)[10];int i=0;/*动态开辟空间*/a=calloc(10,sizeof(int));/*赋值*/for(i=0;i<10;i++){(*a)=i;}return a;}int main(){int (*b)[10]...
回复

使用道具 举报

千问 | 2017-9-3 01:40:56 | 显示全部楼层
这是传址,不需要返回void Merge1 (int b[ ], int b1[ ], int s, int m, int t ){int i,j,k;i=s; j=m+1; k=s;while (i<=m && j<=t) { //两表中元素比较if (b<=b[j]) b1[k++]=b[i++];else b1[...
回复

使用道具 举报

千问 | 2017-9-3 01:40:56 | 显示全部楼层
int Merge1 (int b[ ], int b1[ ], int s, int m, int t )改成int *Merge1 (int b[ ], int b1[ ], int s, int m, int t )就是int 后面加*,这样就可以了...
回复

使用道具 举报

千问 | 2017-9-3 01:40:56 | 显示全部楼层
函数返回值一般为一个值,现在你要返回数组,那么你可以在程序中定义全局数组,或者你通过传指针的方式传过来数组参数,在函数中更改了数组的值后又把数组首地址返回去就可以用了。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行