我想知道如何以这种方式声明char数组:
char szArray[]={"one"};
char szArrayTwo[][6]={{"one"},{"two"},{"three"}};
但这种方式不起作用
char szArrayTwo[][]={{"one"},{"two"},{"three"}};
注意:
我知道c++标记,尽管它应该是c,但它在c++上下文中与c++编译器一起使用
事实上,这可以用于用作初始化器的常量表达式。但在这种情况下,例如对于字符数组,编译器必须计算字符串文字的最大长度。如果一个数组是多维的,那就更难了。如果在运行时计算初始值设定项,则任务将更加复杂。事实上,编译器不可能生成合适的代码。
在c++中,一个具有2个或更多维度的数组,必须始终定义最右边的维度。
string ArrayOne[] { "one","two","three" };
将起作用,也将起作用
char* ArrayTwo[] { "one","two","three" };
但是一个真正的多维数组必须最多有一个未定义的维度大小(最左边)