在C中,像int a[4]
这样的数组创建5个位置来存储整数,包括a[0]
到a[4]
。
但在二维阵列的情况下,像int a[2][2]
只产生四个位置,而不是3*3=9个位置。这是什么原因?
最佳答案
无效前提:在C中,数组int a[4]
创建4个位置,而不是5个。如果随后使用a[4]
,则通过缓冲区溢出调用未定义的行为。二维数组的行为与预期的一样。
关于c - C中一维和二维数组大小的比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38255623/