0

我在尝试初始化字符串数组时遇到了困难。我正在使用一个具有不同方法的类:一个旨在为数组充电,另一个旨在消除数组的元素等等......我需要在类中的每个方法中使用相同的数组。

问题是我需要对数组(队列)进行模拟并显示其元素,因为它们被添加到队列中或从队列中删除,并且我在尝试初始化数组以显示任何内容而不是随机字符时遇到问题。

这是我正在尝试做的代码......

class Queue
{
  public:
         char array[3][6]; //array of 3 positions holding up to 6 characters each
         int front, rear, max;

         Queue()
         {
             front=0;
             rear=0;
             max=3;
             array={"","",""}; //trying to initialize to blank spaces, here's the issue!
         }

         void add_element()
         { }

         void delete_element()
         { }

         void print_on_screen()
         { }
   };
   main()
   {  }

我通过使用一维字符数组使其工作,为 3 个位置中的每一个输入一个数字,但实际上需要它来处理多个字符。

4

1 回答 1

0
char array[3][6]

是 chars 的二维数组。这个

array={"","",""};

正在尝试初始化一个大小为 3 的一维字符串数组

´a´并且"a"是不同的东西。第一个是字符。第二个是字符串。

如果您想将 char 数组初始化为特定的东西,那么您可以这样做

char array[3][3] = {{'a',' ','a'}, {'a','a','a'},{'a','a','a'}};
//                       ^^^
//                        blank space

但是请记住,将 char 初始化为空格与将 int 初始化为 0 不同。0 是 int 的默认值。这就是为什么在构造某些东西时通常将 int 初始化为 0 的原因。表示它们仍然具有默认值。

我认为您应该将其初始化为零。像这样。

     {
         front=0;
         rear=0;
         max=3;
         array[3][6] = {{0}};
     //                ^^^^  
     }

最后""不是空格。这个是" "

于 2013-04-13T00:04:43.330 回答