Я получил приведенный ниже код из книги 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;
}
вот несколько вопросов.
- Я не могу понять инициализацию двумерного массива int
nums[3][4]
. Что отделяет (t*4)+i+1
, так что компилятор знает, что назначать где?
- Как узнать, какие значения будут храниться в строках и столбцах, в зависимости от того, какие значения были назначены?
- Почему там звездочка?
- Для чего нужны круглые скобки вокруг
t*4
? 1018 *
Я понимаю, что инициализация двумерных массивов выглядит следующим образом.
#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
Спасибо.