C Primer plus 10.2 初始化一个double类型的数组,然后把该数组的内容拷贝至3个其它的数组中,使用带数组的表示方法的函数进行第一份拷贝,使用带指针表示方法和指针递增的函..

#include <stdio.h>

void copy_arr (double target1[], double s1[] , int x);
void copy_ptr (double target2[], double s2[], int y);
void copy_ptrs(double target3[], double s3[], double * index);
int main(void)
{
    double source [5] = {1.1, 2.2, 3.3, 4.4, 5.5};
    double target1[5];
    double target2[5];
    double target3[5];

    copy_arr (target1, source, 5);
    copy_ptr (target2, source, 5);
    copy_ptrs(target3, source, source+5);
    printf("target 1 :   \n");
    printf("%.1f %.1f %.1f %.1f\n",target1[0],target1[1],target1[2],target1[3]);
    printf("target 2 :   \n");
    printf("%.1f %.1f %.1f %.1f\n",target2[0],target2[1],target2[2],target2[3]);
    printf("target 3 :   \n");
    printf("%.1f %.1f %.1f %.1f\n",target3[0],target3[1],target3[2],target3[3]);

    return 0;
}
void copy_arr (double target1[], double s1[] , int x)
{
    int i;

    for (i = 0; i <  x; i++)
    {
       target1[i] = s1[i];
    }
    return;
}
void copy_ptr (double target2[], double s2[], int y)
{
    double *t_index;
    double *s_index;
    int j;

    t_index = target2;
    s_index = s2;
    for (j = 0; j < y ;j++)
    {
        *(t_index +j) = *(s_index +j);
    }

    return;
}
void copy_ptrs(double target3[], double s3[],double * index)
{

    int i = 0;

    /*for ( i =0 ;  index - s3> 1; i++ )
    {
        target3 [i] = *s3;
        s3++;
        printf("%.1f ",target3[i]);
    }*/ //另一种方法
    while ( s3 < index )
    {
        target3[i] = *s3;
        s3++;
        i++;
    }

    return;
}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值