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/

10-13 21:55