为什么这些值在这个数组中声明
Why these values in this array declaration?
我想理解这段代码:
const int STUDENTNO(3);
const int MODULENO(4);
double marks[STUDENTNO][MODULENO] = { { 89.0, 22.5, 43.2, 34.0 },
{ 66.5, 26.0, 47.4, 0.0 },
{ 89.0, 30.8, 71.3, 12.0 } };
逻辑上对我来说,STUDENTNO
和MODULENO
的值应该递减1,假设数组中的第一个位置是marks[0][0]
。
谁能解释一下为什么不是这样?
当你有一个大小为N
的数组时,在C和c++中有效的索引是从0
到N-1
。
也可以扩展到多维数组。当数组的大小为M x N
时,有效的索引是从[0][0]
到[M-1][N-1]
。
共有3名学生,4个模块。学生人数是3,模块数是4。就是这么简单。用于特定学生和特定模块的标识符与学生或模块的数量无关。
如果您试图在提供的代码中减少STUDENTNO
或MODULENO
,则marks
的声明将是非法的,因为它指定了3个学生和4个模块的标记。(试一试。)
相关文章:
- 无法将字符串数组声明为类成员而不是字符 (C++)
- 为什么从函数返回数组时需要将数组声明为静态数组.(C++)
- 在 c++ 中直接访问的内联数组声明
- 由于 2D 数组声明,C++ 14 中的运行时错误
- 如何将char数组声明为函数参数?或告诉我此代码中还有其他问题?
- 来自函数参数的 C++ 静态数组声明
- C++ 中的动态数组声明
- C++数组声明
- 数组声明中的错误:表达式必须具有常量值
- 程序随数组声明崩溃
- 运行时和编译时的数组声明
- C++数组声明和初始化
- 带有常量表达式的数组声明
- C ,数组声明,模板,链接器错误
- 如何用'n'维数组声明 std::vector?
- 数组声明上的编译器错误
- 这是什么数组声明
- 头文件类中的数组声明
- 节点数组声明
- 在静态数组声明中使用了两次C++常量