问为什么不sizeof当数组是函数参数时,不能正确报告数组的大小?我有一个测试例程
f(char a[10]) { int i = sizeof(a); printf("%d\n", i); }
答编译器会假装数组参数被声明为指针(即,在示例中,如char *a;参见问题 6.4),并且sizeof报告指针的大小。另请参见问题 1.24 和 7.28。
参考:H&S 第 7.5.2 节 p. 195
由 托管