다음 ode 세그먼트의 출력은 9입니다. 함수 foo의 인수 a가 값으로 전달됩니다. 제 가정은 정확합니까? 그렇다면 출력이 9가되는 방법은 무엇입니까?함수에 인수 전달
#include <stdio.h>
void foo(int[][3]);
int main(void)
{
int a[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
foo(a);
printf("%d\n", a[2][1]);
return 0;
}
void foo(int b[][3])
{
++b;
b[1][1] = 9;
}
C에서 배열은 절대로 값으로 전달되지 않습니다. "array of T"형식의 인수는 "T에 대한 포인터"로 조정됩니다. –
코드를 실행하면 8이됩니다! [** 라이브 데모 **] (http://ideone.com/j4LuMJ#li_j4LuMJ) – johnchen902
와우, 많은 잘못된 대답. –