函数调用,搞不懂这点
#include <stdio.h>#include<string.h>
void copy_arr(double[],double[],int );
void copy_ptr(double *,double *,int );
int main()
{ int i;
double source[5]={1.1,2.2,3.3,4.4,5.5};
double target1[5]={0};
double target2[5]={0};
for(i=0;i<5;i++)
printf("%g\t",source[i]);
printf("\n");
for(i=0;i<5;i++)
printf("%g\t",target1[i]);
printf("\n");
for(i=0;i<5;i++)
printf("%g\t",target2[i]);
printf("\n");
copy_arr(source,target1,5);
copy_ptr(source,target2,5);
for(i=0;i<5;i++)
printf("%g\t",source[i]);
printf("\n");
for(i=0;i<5;i++)
printf("%g\t",target1[i]);
printf("\n");
for(i=0;i<5;i++)
printf("%g\t",target2[i]);
printf("\n");
return 0;
}
void copy_arr(double a2[],double a1[],int n) //为什么把a1[]和a2[]的位置交换后,就没有办法实现copy
{ int i;
for(i=0;i<n;i++)
a1[i]=a2[i];
}
void copy_ptr(double *p1,double *p2,int n)
{
int i;
for(i=0;i<n;i++)
*(p2+i)=*(p1+i);
}