C語言 array 的初始化..

只能說...我真的懂 C 語言嗎?

剛才在 zao 學弟那裡看到關於 C array 初始化的一種方式:

[code lang="c"]
int main()
{
int x[10]=
{
[1]=2, [9]=7, [6]=4, [3]=1, [0]=5,
[2]=8, [4]=9, [5]=6, [7]=0, [8]=3,
};

int i;
for(i=0; i < 10; i++) printf("x[%d]=%dn", i, x[i]); return 0; } [/code]

結果:


x[0]=5
x[1]=2
x[2]=8
x[3]=1
x[4]=9
x[5]=6
x[6]=4
x[7]=0
x[8]=3
x[9]=7

原來 C 還是有很多事情是我不知道的 XD

  • 那個 Compiler 阿? @@

    我拿 gcc 3.2.3 & VS.net 2005 都不會過耶@@

  • 可是我 gcc-3.3 / gcc-4.0 都可以耶。

  • [quote comment=””]可是我 gcc-3.3 / gcc-4.0 都可以耶。[/quote]

    C99 規格書 §6.7.8 引進了這種新語法,第 130 頁也舉了個例子:

    enum { member_one, member_two };
    const char *nm[] = {
    [member_two] = “member two”,
    [member_one] = “member one”,
    };