char board[5][6];
for (int i = 0; i<5; i++)
cin >> board[i];
URLPM
XPRET
GIAET
XTNZY
XOQRS
为什么他们只使用一个变量
board[i]
而不是board
boardp[i][i]
?我不明白这是如何工作的。
如果我这样做:
cout << board[4]
表明:
XTNZY
XOQRS
第4行以下的所有输出...
我不了解此语法的过程。
最佳答案
在C / C++中,字符串可以用char数组表示,并且应为以空字符结尾的字符。
例如,要存储“abcd”,您需要一个大小为5(包括空字符)的char数组。
char str[5]; // store 4 characters => a, b, c, d, \0
声明以下二维数组时,将创建一个5'char [6]'的数组。并且保留内存未初始化(因为它是局部变量),但是在您的情况下为0,这被视为null。
char board[5][6];
因此,如果您将5个长度的字符放在board [i]中,尽管这不是一个好习惯,但您将使用以空字符结尾的字符。但是,如果将6个长度的字符放在board [i]中,则字符串将连接到board [i + 1]中存储的字符串,因为字符串的末尾没有任何内容(空)。如果尝试使用cout或printf()打印board [i],它将显示board [i]和board [i + 1],因为它们会打印char的序列,直到面向null。
关于c++ - 输入数据到二维数组这是如何工作的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36973300/