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

declaration of a Multidimensional array without index numbers

本文关键字:数组 声明 索引      更新时间:2023-10-16

我想知道如何以这种方式声明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" };

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