我没有弄清楚数据是如何传递的,可以解释一下吗?以及在C语言中 array[n] 是指arry中可以包含n个数字,还是n代指index,匹配array中的元素,我有一点混淆。
#include
void print_int_array(int A[], int n) {
for (int i=0; i"%4d", A[i]);
}
printf("\n");
}
void copy_int_array(int src[], int dst[], int n) {
for (int i = 0; i < n; i++) {
dst[i] = src[i];
}
}
/* 此外,数组不能从函数返回。相反,我们可以传递一个“返回”数组作为参数,由函数修改(参见copy_int_array中的dst)。 这是什么意思?*/
int main(int argc, char *argv[]) {
int A[5] = {1, 2, 3, 4, 5};
int B[5] = {0};
print_int_array(B, 5); /*不太清楚B是传递哪一组数字到function print_int_array */
copy_int_array(A+2, B, 2);
print_int_array(B, 5);
print_int_array(A+2, 2);
}
/输出/
0 0 0 0 0
3 4 0 0 0
3 4
感谢答疑
定义数组的时候,中括号里的值代表总共元素个数,使用的时候就是index。这是基础性的,看看书就行。
c中数组是地址传递,23行主程序传递进去的是A第三个元素的地址,函数中操作就是把A的3,4赋值给B的前两个位置。