数组初始化程序C ++ char Xcode中的多余元素

时间:2015-10-10 01:24:37

标签: c++ arrays xcode char yosemite

我的名字有六个字母,我的第二个名字有四个字母。

错误的代码将构建并打印:

char myName[4][6] = {{'x', 'x', 'x', 'x', 'x', 'x'}, {'x', 'x', 'x', 'x'}};

但正确的代码不会:

char myName [6] [4] = {{'x', 'x', 'x', 'x', 'x', 'x'}, {'x', 'x', 'x', 'x'}};

有没有理由:

  • 第二个数组[4]是否正在应用于第一组字符?
  • 第一个数组[6]是否正在应用于第二组字符?

我使用的是最新版本的Xcode。是否存在某些故障,其中阵列是倒置的还是什么?我环顾四周,但找不到任何解释这一点。

2 个答案:

答案 0 :(得分:1)

这是因为char myName[4][6]是六个char数组的四元素数组(因此您的数据适合)。其中char myName[6][4]是六个char数组的数组(不适合您的六个char数组)。

答案 1 :(得分:0)

char[0] [0][1] [0][2]
char[1] [1][1] [1][2]

而且,您可以将数组放入数组中。所以如果你想象一下,你可以拥有数组页面。只需链接做类似的事情。

int a[0] = b[4];

这会将b [4] [...]放入[0]的单个单元格中。对游戏或诸如此类的东西很有用。