這個例子正常工作:初始化指針數組的指針
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