7

天!

如果我有一个将整数数组作为参数的函数,然后从该函数内部,将同一个数组发送到另一个函数,它是否仍然能够编辑数组值并将它们提交到主级别而不是在功能层面?

IE

int
main(int argc, char *argv[]) {
    int A[50];
    functionB(A);
 }

其中函数 B 如下所示:

void functionB(int A[]) {
    functionC(A);
}

函数 C 是实际改变 A[] 中的值的函数。

main 会看到更改后的数组还是原来的 A[]?

谢谢!

4

1 回答 1

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]);
 }
于 2014-10-18T04:21:21.727 回答