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;
}

猜你喜欢

转载自blog.csdn.net/qq_36324796/article/details/79061216