为啥可以修改数组 b? [复制]
Posted
技术标签:
【中文标题】为啥可以修改数组 b? [复制]【英文标题】:Why is modification of array b possible? [duplicate]为什么可以修改数组 b? [复制] 【发布时间】:2018-10-24 18:42:57 【问题描述】:a 和 b 都是数组名。为什么 ++b 是允许的,而 ++a 是不允许的。
int main(void)
int a[3][3] = 0 ;
foo(a);
return 0;
void foo(int b[][3])
++b;
【问题讨论】:
因为a
是一个数组,而b
不是
【参考方案1】:
当您声明int b[][3]
之类的参数时,编译器真正将其翻译为int (*b)[3]
。也就是说,b
是一个指针,而不是一个数组。
请注意,这种翻译只发生在函数参数上,并且只发生在第一个“维度”。
【讨论】:
以上是关于为啥可以修改数组 b? [复制]的主要内容,如果未能解决你的问题,请参考以下文章