指针数组初始化问题
int main(void)
{
enum { ZERO = 0, ONE, TWO, THREE };
char * const ss[] = {
[ZERO] = "zero",
[ONE] = "one",
[TWO] = "two",
[THREE] = "three",
NULL
};
printf("%s\n", ss[2]);
return 0;
}
以上代码中ss数组的初始化,和
char * const ss[] = { "zero", "one", "two", "three", NULL }
比,有什么意义?
[解决办法]
我看不出什么不同,就是第一个初始化的时候可以指定索引,第一种方法应该不是所有编译器都支持的
[解决办法]
这样是错误的语法,编译器能通过?
[解决办法]
呵呵,第一种方法我还是第一次见啊。而且,我在VS2010下编译第一种,出现错误
[解决办法]
毫无意义。
[解决办法]
没见过第一种
[解决办法]
第一个好处是清楚,数组元素多了你可能都搞不清楚谁对谁了。
int main(void){ enum { ZERO = 0, ONE, TWO, THREE }; char * const ss[] = { [THREE] = "three", }; printf("%s\n", ss[2]); return 0;}
[解决办法]