69,382
社区成员
发帖
与我相关
我的任务
分享
//将source的值通过三种方法复制到target1,target2,target3里面
//使用带数组表示法的函数进行第一份拷贝。
//使用带指针表示法和指针递增的函数进行第二份拷贝。
//把目标数组名、源数组名和带靠背的元素个数作为前两个函数的参数。
//第三个函数以目标数组名,源数组名和指向源数组最后一个元素后面的元素的指针。
#include <stdio.h>
void copy_arr(double *a, double *b, int c);
void copy_ptr(double *a, double *b, int c);
void copy_ptrs(double *a, double *b, double *c);
int main()
{
double source[5] = {1.1, 2.2, 3.3, 4.4, 5.5};
double target1[5];
double target2[5];
double target3[5];
int i;
copy_arr(target1, source, 5);
copy_ptr(target2, source, 5);
copy_ptrs(target3, source, source + 5);
for(i = 0; i < 5; i++)
printf("%10g%10g%10g%10g\n", source[i], target1[i], target2[i], target3[i]);
return 0;
}
void copy_arr(double *a, double *b, int c)
{
int i;
double *p = a;
for(i = 0; i < c; i++)
p[i] = b[i];
}
void copy_ptr(double *a, double *b, int c)
{
double *p = a;
int i;
for(i = 0; i < c; i++, p++)
*p = b[i];
}
void copy_ptrs(double *a, double *b, double *c)
{
int i;
double *p = a;
for(i = 0; p != c; i++, p++)
*p = b[i];
}