C++二维数组填充的嵌套for循环工作原理咨询
嵌套for循环填充二维数组的执行逻辑
先看你代码里的数组:double arr[5][3]是一个5行3列的二维数组,行索引范围是0到4,列索引范围是0到2。
循环执行顺序
外层for (int i = 0; i < 5; i++)负责遍历每一行:
i=0时处理第0行,i=1时处理第1行,直到i=4处理完最后一行。
内层for (int j = 0; j < 3; j++)负责遍历当前行的每一列:
- 每进入一次内层循环,就给当前行第j列的元素
arr[i][j]赋值为k,随后k自增1。整个过程就是把k从0开始,按先填满一行所有列,再换下一行的顺序,依次给数组元素赋值。
题目中元素的具体值
用表格直观展示数组填充后的完整内容:
| 行索引\列索引 | 0 | 1 | 2 |
|---|---|---|---|
| 0 | 0 | 1 | 2 |
| 1 | 3 | 4 | 5 |
| 2 | 6 | 7 | 8 |
| 3 | 9 | 10 | 11 |
| 4 | 12 | 13 | 14 |
对应题目里的几个元素:
arr[0][0]:第0行第0列,第一个被赋值的元素,值为0arr[2][2]:第2行第2列,值为8arr[3][0]:第3行第0列,值为9arr[4][2]:第4行第2列,最后一个元素,值为14
补充说明
C++中二维数组默认采用行优先存储,也就是内存里会先存储第0行的所有元素,再依次存储第1行、第2行……这段代码的遍历顺序刚好和存储顺序一致,所以是按连续递增的数值依次填充。
内容的提问来源于stack exchange,提问作者coffeboi
相关产品推荐
相关产品推荐

