参考自:Primer C++ 第五版
严格的讲,C++没有多维数组,通常所说的多维数组其实是数组的数组。
当一个数组的元素依然是数组时,通常使用两个维度来定义它:一个维度表示数组本身大小,另一个维度表示其元素(也就是数组)的大小;
Int a[3][4]表示大小为3的数组,每个元素是含有4个整数的数组;
多维数组的初始化:
int a[3][4] = {
{0,1,2,3},//初始化第一行
{4,5,6,7},
{8,9,10,11}
};
花括号非必需
int a[3][4] = { 0,1,2,3,4,5,6,7,8,9,10,12 };
如果仅想初始化每一行的第一个元素:其它未列出的元素执行默认值初始化。
int a[3][4] = { {0},{4},{8} };
显式初始化第一行:int a[3][4] = { 0,3,6,9 };
多维数组的下标引用
constexpr size_t rowCnt = 3;
constexpr size_t colCnt = 4;
int ia[rowCnt][colCnt];
for (size_t i = 0; i != rowCnt; i++) {/*对每一行*/
for (size_t j = 0; j != colCnt; j++) {/*对每一列*/
//将元素的位置作为它的值
ia[i][j] = i *colCnt + j;
cout << ia[i][j]<<' ' ;