【发布时间】:2010-10-11 03:30:14
【问题描述】:
这个例子运行良好:
static char *daytab[] = {
"hello",
"world"
};
这不是:
static char *daytab[] = {
{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
};
我看到的方式是,第一个示例创建了一个数组,其中填充了指向两个字符串文字(它们本身就是数组)的指针。第二个例子,IMO,应该是相同的——创建一个数组并用指向两个 char 数组的指针填充它。
有人能解释一下为什么第二个例子是错误的吗?
附:你可能会这样写(还没有测试过):
static char a[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
static char b[] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
static char *daytab[] = {
a,
b
};
但这看起来工作量太大了:)。
【问题讨论】:
-
4 个答案,但我只看到一个?怎么会?
-
前几天我也遇到过这种情况。所以似乎需要一段时间才能完全解决已删除的答案。它会“很快”稳定到正确的计数。