在数组中
int a[][5] = {{1},{1,2}};
什么是"""第二维的大小和的值
a[0][1]
有?
说出尺寸是否有意义,或者它与" row"是否有所不同?到"行"?
这被认为是不好的做法吗?
答案 0 :(得分:1)
这是无效的。它甚至不会编译:
test.cc:1:9: error: declaration of ‘a’ as multidimensional array must have bounds for all dimensions except the first
答案 1 :(得分:1)
在您的代码中
int a[][5] = {{1},{1,2}};
第一个维度的大小为2(因为外部{}
内部有两个元素),第二个维度的大小为5.初始化中未提及的元素初始化为零。所以,你的代码相当于:
int a[][5] = {{1,0,0,0,0},{1,2,0,0,0}};
答案 2 :(得分:0)
当您使用带数组的花括号初始化表示法时,必须指定数组所具有的所有维度的所有元素,以便这段代码只会给您一个编译时错误。
如果您想拥有不同大小的容器数组,请考虑使用向量数组,甚至是向量向量。要使用它们,只需执行#include <vector>
即可完成。