如何初始化2D数组中的第一行?

时间:2015-11-14 18:40:17

标签: c multidimensional-array initialization

我想要一个包含4列的13行数组,我希望第一行包含字符“C”,“D”,“H”和“S”,但这不是我得到的。这是我的代码:

#include <stdio.h>

int main(void)
{
  char a[13][4] = {"C", "D", "H", "S"};
  int i, j, k;

  for (i = 0; i < 13; i++)
    {
      for (j = 0; j < 4; j++)
        {
          printf("%c ", a[i][j]);
        }
      printf("\n");
    }

  return 0;
}

这就是它的输出:

C
D
H
S

什么时候应该

C D H S

我已经尝试了谷歌搜索教程,了解如何初始化多维数组,我认为我做得对,但我必须做错事,因为某些原因我无法看到。

2 个答案:

答案 0 :(得分:0)

您需要使用字符常量而不是字符串常量。将双引号更改为单引号:

char a[13][4] = {'C', 'D', 'H', 'S'};

答案 1 :(得分:0)

声明

IntVar

使用四个字符串char a[13][4] = {"C", "D", "H", "S"}; a初始化前四行数组"C", "D", "H"。如果您只想初始化包含字符"S"'C', 'D', 'H'的第一行,那么它应该像

's'

数组的其他元素将初始化为char a[13][4] = {{'C', 'D', 'H', 'S'}}; 个字符。