首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

指针数组初始化有关问题

2012-03-12 
指针数组初始化问题int main(void){enum { ZERO 0, ONE, TWO, THREE }char * const ss[] {[ZERO]

指针数组初始化问题
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……

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

热点排行