读书人

怎样在子函数中返回数组值,该如何解决

发布时间: 2012-02-23 22:01:35 作者: rapoo

怎样在子函数中返回数组值
兄弟想在一个子函数中返回一个数组值.
请大哥们指教,意思如下:
主函数()
{
调用子函数();
在打印出子函数中数组a的值.
}
子函数()
{
int a[4]={1,2,3,4}
}


[解决办法]
这是一个粗略的实现:(dev C++)
#include <stdio.h>
int b[4];
void subcopy()
{
int i=0;
int a[]={1,2,3,4};
for(;i <4;i++)
b[i]=a[i];
return;
}
int main()
{
int i=0;
subcopy();
for(i=0;i <4;i++)
printf( "%d ",b[i]);
scanf( "%d ",&i);
return 0;
}

另外,将指针定义在主函数中也是可以的,但是要这样操作才可以:
#include <stdio.h>

void subcopy(int *b)
{
int i=0;
int a[]={1,2,3,4};
for(;i <4;i++)
b[i]=a[i];
return;
}
int main()
{
int i=0;int b[4];
subcopy(b);
for(i=0;i <4;i++)
printf( "%d ",b[i]);
scanf( "%d ",&i);
return 0;
}

只要注意一点就可以了:c采用的是值传递的方式。
我的实现里全局变量用的是数组而不是指针,这样不灵活。你可以定义个指针,在子函数中申请空间将a数组的内容复制过去,这样对于a数组改变大小是b数组的大小也可以跟着变,没有空间上的浪费。

读书人网 >C语言

热点推荐