为什么这些值在这个数组中声明

Why these values in this array declaration?

本文关键字:数组 声明 为什么      更新时间:2023-10-16

我想理解这段代码:

  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 } }; 

逻辑上对我来说,STUDENTNOMODULENO的值应该递减1,假设数组中的第一个位置是marks[0][0]

谁能解释一下为什么不是这样?

当你有一个大小为N的数组时,在C和c++中有效的索引是从0N-1

也可以扩展到多维数组。当数组的大小为M x N时,有效的索引是从[0][0][M-1][N-1]

共有3名学生,4个模块。学生人数是3,模块数是4。就是这么简单。用于特定学生和特定模块的标识符与学生或模块的数量无关。

如果您试图在提供的代码中减少STUDENTNOMODULENO,则marks的声明将是非法的,因为它指定了3个学生和4个模块的标记。(试一试。)