我从一本 C++ 书中得到了下面的代码,但我无法弄清楚初始化是如何工作的。
据我所知,有一个外部循环循环通过行,内部循环循环通过列。但这是我不明白的将值分配到数组中。
#include <iostream>
using namespace std;
int main()
{
int t,i, nums[3][4];
for(t=0; t < 3; ++t) {
for(i=0; i < 4; ++i) {
nums[t][i] = (t*4)+i+1; //I don't understand this part/line
cout << nums[t][i] << ' ';
}
cout << '\n';
}
return 0;
}
所以这里有一些问题。
- 我无法理解 2D int array 的初始化
nums[3][4]
。是什么分开(t*4)+i+1
, 以便编译器知道在哪里分配什么? - 根据分配的值,我如何知道哪些值将存储在行和列中?
- 为什么有星号?
- 周围的括号
t*4
是干什么用的?
我知道初始化二维数组看起来像下面的例子。
#include <iostream>
using namespace std;
int main() {
char str[3][20] = {{"white" "rabbit"}, {"force"}, {"toad"}}; //initialize 2D character array
cout << str[0][0] << endl; //first letter of white
cout << str[0][5] << endl; //first letter of rabbit
cout << str[1][0] << endl; //first letter of force
cout << str[2][0] << endl; //first letter of toad
return 0;
}
据我所知,就像记忆中的这样。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 w h i t e r a b b i t 0
1 f o r c e 0
2 t o a d 0
谢谢你。