二维数组定义
2-dimensional array definition
根据我的理解,当我们定义一个数组时,我们需要指定它的大小
显式地,以便编译器知道数组占用的所需内存。
因此,案例1:
int a[][3]; //illegal as we will not know the size of the int array
a[0][1]=2;
a[1][3]=4;
但是当我添加这样的东西:
案例2:
int a[][3]={0}; //the compiler didn't complain at all
a[0][1]=2;
a[1][3]=4;
为什么在这种情况下编译器不显示任何错误信息?在情况2的定义只告诉编译器有多少列,但行数仍然未知?编译器不应该以与情况1相同的方式行事吗??有什么理由来解释这个吗?非常感谢
当你定义数组为
int a[][3]={0};
编译器将值赋给上述声明的数组:
int a[1][3]
所以它没有抱怨
同样,如果你这样做:
int a[][3]={0,2};
它将取:
int一个[2][3]
相关文章:
- 将值从二维数组输出到文本文件
- 在二维数组中查找最小值和最大值?
- 移动二维数组中的字符
- 如何正确填充在堆上分配的二维数组?
- 传递二维数组时出现问题
- 具有随机数的二维数组不会更改
- 如何在C++中获取二维数组中最少的一列数?
- 如何使用用户输入变量制作二维数组?
- C++ 中动态二维数组的访问冲突
- 遍历二维数组的所有子数组
- 将二维数组的所有元素插入到一维数组中
- 如何在 Visual Studio C++ 11 中运行时定义二维数组?
- 使用二维数组作为一维数组是否正确?可能会导致未定义的行为左右?
- 二维数组传入没有全局定义 (M x N) 的函数
- 具有未定义的第二维的二维数组
- 用C++MATLAB API定义二维数组
- C++ 二维数组定义
- 在C++中定义二维数组
- 二维数组定义
- 定义boost::dynamic_bitset的(一/二)维数组