设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
c语言中如何使返回值为数组
返回列表
发新帖
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
|
显示全部楼层
函数返回值一般为一个值,现在你要返回数组,那么你可以在程序中定义全局数组,或者你通过传指针的方式传过来数组参数,在函数中更改了数组的值后又把数组首地址返回去就可以用了。...
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行