如何给多维数组赋值?



作为c++的初学者,我使用c++入门作为我的教科书。我刚讲到多维数组部分。这是书中关于给这样的数组赋值的代码,但是我不太明白…

constexpr size_t rowCnt = 3, 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;
}
}

ia[i][j] = i * colCnt + j;如何赋值给数组?

访问元素号"在数组中调用array[x]对吧?为了给索引赋值你调用array[x] = "something"

在多维数组中,元素"x"是另一个数组,因此:

ai[i][j]变成(ai array at index i)[j] .

我希望你能理解。

等号右边的赋值是不相关的,在你的例子中因为循环你会得到像

这样的东西0, 1, 2

3、4、5

6, 7, 8

那么您有一个三行数组,每行由四列数组组成。

将第一行的第一列地址设为"ia[0][0]"要处理第一行中的第二列,请使用"ia[0][1]"。要处理最后一行的最后一列,请使用"ia[2][3]"。

编译器需要计算您使用"i"要求的行地址。变量:"ia[我]";然后使用"j"计算列在该行中的位置。变量:"ia[我][j]"。

从你的代码


int ia[rowCnt][colCnt];

这和这个差不多int是[3][4];这意味着您的数组可以在行中保存3个项(值),在列中保存4个项。

然后使用一个for循环来遍历数组的每个索引,这是一个nasted循环,因此第一个循环用于行,第二个循环用于列。

第一个循环

for(size_t i = 0; i != rowCnt; i++) 

第一个循环是用来循环并增加i的值,直到它是rowCnt;(3)

第二个循环也是如此。

for(size_t j = 0; j != colCnt; j++)

还要记住,inner循环总是执行完,而outer循环只执行一次。

这意味着当i = 0且j = 0时;[i][j] = i * colnent + j;这意味着。在第一行和第一列中,给它的值i * collent + j;

一直这样,直到所有的值都输出.
我不确定你是否理解,但我希望我已经回答了你的问题。

相关内容

  • 没有找到相关文章

最新更新