c如何返回一个数组

来源:百度知道 编辑:UC知道 时间:2024/05/21 17:55:59
#include<stdio.h>
void main(void)
{
int size=4;
double source[4]={1,2.3,4.5,6.7};
double first_copy[4];
double second_copy[4];
copy1(source,first_copy,size);
printf("The first copy: %f,%f,%f,%f\n",first_copy[0],first_copy[1],first_copy[2],first_copy[3]);
copy2(source,second_copy,size);
printf("The second copy: %f,%f,%f,%f\n",second_copy[0],second_copy[1],second_copy[2],second_copy[3]);
}

copy1(double array[],double c1[],int n)
{
int i;
for(i=0;i<n;i++)
c1[i]=array[i];
return c1[];
}

copy2(double array[],double c2[],int n)
{
double *p;
int i;
for(i=0;i<n;i++)
{
p=&array[i];
*p=c2[i];
}
return c2[];
}

我知道这个程序是错的,我想返还数组,可是return c1[] 是做不到的!
该怎么办啊~
如果我现在按同样的方法 把一个数列a[2][4](2行四列)分别副值给两个数列b[4] c[4]
想把返还回来的这两个数列重新赋值给另一个新的数列 d[2][4],应该怎么做啊?

返回数组名就行了,在主函数中用指针接收返回值。

#include<stdio.h>

double *copy1(double array[],double c1[],int n);
double *copy2(double array[],double c2[],int n);
void main(void)
{
int size=4;
double source[4]={1,2.3,4.5,6.7};
double first_copy[4];
double second_copy[4];
double *fp,*sp;
fp=copy1(source,first_copy,size);
printf("The first copy: %f,%f,%f,%f\n",fp[0],fp[1],fp[2],fp[3]);
sp=copy2(source,second_copy,size);
printf("The second copy: %f,%f,%f,%f\n",sp[0],sp[1],sp[2],sp[3]);
}

double *copy1(double array[],double c1[],int n)
{
int i;
for(i=0;i<n;i++)
c1[i]=array[i];
return c1;
}

double *copy2(double array[],double c2[],int n)
{
double *p;
int i;
for(i=0;i<n;i++)
{
p=&array[i];
c2[i]=*p;
}
return c2;
}
---------------------------