编写一个程序,初始化一个double数组,然后把数组内容复制到另外两个数组(3个数组都需要在主程序中声明)。制作第一份拷贝的函数使用数组符号。制作第二份拷贝的函数使用指针符号,并使用指针的增量操作。把目标数组名和要复制的元素数目做为参数传递给函数。也就是说,如果给定了下列声明,函数调用应该如下面所示:
double source [5]={1.1, 2.2, 3.3, 4.4, 5.5};
double targetl[5];
double target2 [5];
copy_arr (source, target1, 5);
copy_ptr (source, target1,5);
1 #include <stdio.h> 2 3 void copy_arr(double s[],double tar[],int c); 4 void copy_ptr(double *s,double *tar,int c); 5 6 int main(void){ 7 double s[5]={1.1, 2.2, 3.3, 4.4, 5.5}; 8 double t1[5],t2[5]; 9 copy_arr(s,t1,5); 10 copy_ptr(s,t2,5); 11 int i; 12 printf("t1\t\tt2\n"); 13 for(i=0;i<5;i++) 14 { 15 printf("t1[%d]=%.1f\t",i,t1[i]); 16 printf("t2[%d]=%.1f\n",i,t2[i]); 17 } 18 return 0; 19 } 20 21 void copy_arr(double s[],double tar[],int c){ 22 int i; 23 for(i=0;i<c;i++){ 24 tar[i]=s[i]; 25 } 26 } 27 28 void copy_ptr(double *s,double *tar,int c){ 29 int i; 30 for(i=0;i<c;i++){ 31 *(tar+i)=*(s+i); 32 } 33 }
在函数定义部分也可以使用增量运算符:
1 void copy_arr(double s[],double tar[],int c){ 2 int i=0; 3 while(i<c)tar[i]=s[i++]; 4 } 5 6 void copy_ptr(double *s,double *tar,int c){ 7 int i=0; 8 while(i<c)*(tar+i)=*(s+i++); 9 }
时间: 2024-10-11 16:00:03