这个例子正常工作:初始化指针数组的指针
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数组的指针填充它。
有人可以向我解释为什么第二个例子是错误的?
P.S.你可以这样写(没有测试过):
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答案,但我只看到一个?怎么来的? – Ree 2009-03-03 23:02:52
已被作者删除。 – 2009-03-03 23:23:21
我那天发生过。 SO似乎需要一段时间才能完全解释已删除的答案。它将尽快达到正确的数量。 – RBerteig 2009-03-03 23:47:25