天儿真好!
如果我有一个函数,它将一个int数组作为参数,然后从该函数中, 将相同的数组发送到另一个函数,它是否仍然可以编辑数组值并让它们在主级别而不是在函数级别提交?
即
int
main(int argc, char *argv[]) {
int A[50];
functionB(A);
}
函数B看起来像:
void functionB(int A[]) {
functionC(A);
}
和函数C实际上是变异A []中的值。
主要看到更改的数组还是原始的A []?
谢谢!
答案 0 :(得分:10)
数组衰减到指针。所以它会修改原始数组。
检查
void functionC(int A[]) {
A[0] = 1;
A[1] = 2;
}
void functionB(int A[]) {
functionC(A);
}
int
main(int argc, char *argv[]) {
int A[2]={5,5};
printf("Before call: %d %d\n",A[0],A[1]);
functionB(A);
printf("After call : %d %d\n",A[0],A[1]);
}