Jam*_*ams 7 c arrays pointers immutability mutability
天儿真好!
如果我有一个函数,它将一个int数组作为参数,然后从该函数中,将相同的数组发送到另一个函数,它是否仍然能够编辑数组值并让它们在主级别提交而不是在功能水平?
即
int
main(int argc, char *argv[]) {
int A[50];
functionB(A);
}
Run Code Online (Sandbox Code Playgroud)
函数B看起来像:
void functionB(int A[]) {
functionC(A);
}
Run Code Online (Sandbox Code Playgroud)
和函数C是实际变异A []内的值的函数.
主要看到改变的数组还是原来的A []?
谢谢!
Jay*_*hoi 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]);
}
Run Code Online (Sandbox Code Playgroud)