指针 数组问题
程序代码:# include <stdio.h>
void copy_arr(double ar_s[], double ar_t[], int size);
void copy_ptr(double pt_s[], double pt_t[], int size);
void print(double n[], int size);
int main (void)
{
double source[5] = {1.1, 2.2, 3.3, 4.4, 5.5};
double target1[5];
double target2[5];
copy_arr(source, target1, 5);
copy_ptr(source, target2, 5);
print(target1, 5);
print(target2, 5 );
return 0;
}
void copy_arr(double ar_s[], double ar_t[], int size)
{
int i;
for (i=0; i<size; ++i)
ar_t[i] = ar_s[i]; //为什么只要这一句,target1就得到赋值!!!
}
void copy_ptr(double pt_s[], double pt_t[], int size)
{
double *ptr;
int i;
for (i=0,ptr=pt_s; i<size; ++i, ++ptr)
pt_t[i] = *ptr;
}
void print(double n[], int size)
{
int i;
for (i=0; i<size; ++i)
printf ("%5.1lf", n[i]);
printf ("\n");
}这是一道c primer plus 5th 的一道题,第十章。为什么copy_arr函数能够给target1赋值,不是说函数赋值要return的吗?还是因为,发送的是数组地址。










没听说过。。。