【发布时间】:2015-02-07 21:44:54
【问题描述】:
正如“Excess elements of scalar initializer for pointer to array of ints”的问题一样,我也在研究 Ex。 5-9 在 K&R,尝试转换
static char daytab[2][13] = {
{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}
};
进入
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}
};
我得到了那里描述的错误。但是,接受的答案
static char arr[2][3] = { { 1, 2, 3 }, { 4, 5, 6 } };
static char (*ptr)[3] = NULL;
ptr = arr;
只是在ptr = arr 处给我另一个错误
error: data definition has no type or storage class
谁能帮忙?
还有,为什么使用指向char数组的指针数组是合法的,比如
static char *name[] = {
"Illegal month",
"January", "February", "March",
"April", "May", "June",
"July", "August", "September",
"October", "Novemer", "December"
};
但不是int 数组?
【问题讨论】:
-
查看更新的答案。我对你的第二个问题的回答做了一点改进。
标签: c arrays pointers compiler-errors