曲径通幽论坛

标题: 标号数组 [打印本页]

作者: beyes    时间: 2011-1-11 22:48
标题: 标号数组
在标准 C 里,数组的初始化值必须以固定顺序出现,但在 GCC 中却赋予了更灵活的初始化方法,它通过指定索引而允许初始化值以任意的顺序出现。

下面是示例程序:
#include <stdio.h>

#define   MAX   10
int main()
{
         int list[MAX] = {[0 ... 5] = 10, 20,30,40,50};
         int i = 0;
         int area[MAX] = {11,[8]=7,12};
         for (i = 0; i < 10; i++)
                 printf ("%d ", list[i]);
         printf ("\n");

         for (i = 0; i < 10; i++)
                 printf ("%d ", area[i]);
         printf ("\n");

         return (0);
}
运行与输出:
$ ./array
10 10 10 10 10 10 20 30 40 50
11 0 0 0 0 0 0 0 7 12
从 list[] 数组中可以看出,它允许通过指定域的形式来进行初始化;
从 area[] 数组中可以看出,我们可以单独指定要初始化那个元素。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2