声明没有索引号的多维数组

时间:2014-04-11 12:52:28

标签: c++ arrays visual-studio-2010 c++11 multidimensional-array

我想知道如何以这种方式声明char数组:

char szArray[]={"one"};
char szArrayTwo[][6]={{"one"},{"two"},{"three"}};

但这种方式不起作用

char szArrayTwo[][]={{"one"},{"two"},{"three"}};

注意:
我知道c ++标签,即使它应该是c,但它正在c ++上下文中使用c ++编译器

3 个答案:

答案 0 :(得分:2)

实际上,可以对用作初始化器的常量表达式进行处理。但在这种情况下,例如对于字符数组,编译器必须计算字符串文字的最大长度。如果一个数组是多维的,那就更难了。 如果在运行时计算初始化程序,则任务将更复杂。实际上,编译器无法生成适当的代码。

答案 1 :(得分:1)

在c ++中,包含2维或更多维的数组,必须始终定义最右边的维度。

答案 2 :(得分:0)

string ArrayOne[] { "one","two","three" };

会起作用,

也会如此
char* ArrayTwo[] { "one","two","three" };

但真正的多维数组必须至多有一个未定义的维度大小(最左边的)