读书人

指针数组初始化有关问题

发布时间: 2012-03-12 12:45:32 作者: rapoo

指针数组初始化问题
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下编译第一种,出现错误
[解决办法]
毫无意义。
[解决办法]
没见过第一种
[解决办法]
第一个好处是清楚,数组元素多了你可能都搞不清楚谁对谁了。

C/C++ code
int main(void){    enum { ZERO = 0, ONE, TWO, THREE };    char * const ss[] = {        [THREE] = "three",    };    printf("%s\n", ss[2]);    return 0;}
[解决办法]
探讨

第一个好处是清楚,数组元素多了你可能都搞不清楚谁对谁了。

C/C++ code
int main(void)
{
enum { ZERO = 0, ONE, TWO, THREE };
char * const ss[] = {
[THREE] = "three",
};

printf("%s\n", ss[2]);

retur……

[解决办法]
第一种从未见过
[解决办法]
也没见过第一种,应该不是所有编译器都支持,慎用
[解决办法]
。。没见过第一种- -

读书人网 >C语言

热点推荐