char var []和char var [] []

时间:2015-10-29 17:19:35

标签: c++ c arrays

所以标题说明了一切。我只是通过将char variable[51]更改为char variable[51][51]来修复一段代码。我理解第一个版本意味着用户最多只能在变量中输入50个字符(假设我使用scanf来保存变量的输入)。但是,第二个版本在第二个版本中做了什么?谷歌搜索没有帮助,但是我假设在第二个版本中,第二个[]意味着该变量最多可以包含50个不同的字符串。如果有人可以证实这一点,或者如果我错了就纠正我,那就太棒了。谢谢!

4 个答案:

答案 0 :(得分:2)

表达式char variable[51][51];表示variable是一个包含51个数组的数组,每个数组包含51个字符。

答案 1 :(得分:1)

char variable[51]           // 1-d character array 

这是char的数组。它可以包含51个字符。

char variable[51][51]        // 2-d  character array

这声明了51个数组的数组,可以包含51个字符。

如果您打算将它们用作字符串(或传递给字符串操作函数),那么 -

1。第一个可以包含最多50个字符。

2。其中第二个字符串51个字符串。{/ p>

注意 - 50还剩一个空格。

答案 2 :(得分:1)

实际上,char var [51]将包含51个可以从0到50索引的字符。

现在如果添加第二组括号,则意味着char var [51] [51]现在可以表示51行乘51列的二维数组或方阵。

答案 3 :(得分:0)

char variable[51]是一个包含51个字符的数组。

char variable[51][51]是由51个字符组成的51个数组的数组(AKA是一个具有51行和51列的二维数组,但这并不完全正确)。这意味着数组中的每个元素本身就是一个数组。

您的编译器会按顺序存储它们,因此通过将用户输入到variable,它将进入下一个元素(即下一个数组),以防它包含超过51个字符。当你打印variable时,它似乎是正确的,虽然它实际上在数组中占用了超过1个元素。