我在c book中找到了以下声明,任何人都可以解释它:
char *dic[][40]={
"atlas", "A volume of maps",
"car", "a vehicle",
"telephone", "a communication device",
"", ""
}
这里40意味着什么,即这是哪个维度?
答案 0 :(得分:3)
这实际上是一种初始化字典的奇怪方式。
它是char*
(零终止(\0
)字符串的二维数组。)
尺寸为[行] [列]。
所以你有1行(由初始化程序确定)和40列字符串,
其中8个被初始化。
注意:你确定它不是char dic[][40]
(即最大长度为40的字符串列表)?
答案 1 :(得分:1)
dic
是char*
的二维数组;它的尺寸是1 x 40。
声明符中给出了40,并且初始化程序中只有一个数组这暗示了1。完整的初始化程序将有另一组括号,例如,
char *dic[][40] =
{
{
"atlas", "A volume of maps",
"car", "a vehicle",
"telephone", "a communication device",
"", ""
}
};
使用额外的括号,隐含的维度为1更清楚。
二维数组中的每个元素都是char*
类型的指针。前八个指针初始化为指向初始化程序中给出的八个字符串文字。
答案 2 :(得分:0)
我认为书中可能有错误,似乎他们想要字典 - 3D数组:
char *dic[][40]={
{"atlas", "A volume of maps"},
{"car", "a vehicle"},
{"telephone", "a communication device"},
{"", ""}
};
答案 3 :(得分:0)
代码中的40表示字符的最大长度(或字符串的总长度)为40。
将char *dic[][40]
视为指针数组。其中一个指针指向最多40个字符。