a和b都是数组名。为什么允许++ b而不允许++ a。
int main(void)
{
int a[3][3] = { 0 };
foo(a);
return 0;
}
void foo(int b[][3])
{
++b;
}
答案 0 :(得分:3)
当您声明诸如int b[][3]
之类的参数时,编译器实际上将其原样转换为int (*b)[3]
。也就是说,b
是指针而不是数组。
请注意,此翻译仅适用于函数参数,并且仅适用于 first “ dimension”。