天天看點

數組指定初始化器

C99增加了一個新特性:指定初始化器。利用該特性可以初始化指定的數組元素。例如,隻初始化數組中的最後一個元素。對于傳統的的C初始化文法,必須初始化最有一個元素之前的所有與還俗,才能初始化它:

int arr[6]={0,0,0,0,0,212];//傳統的文法

而使用C99的新特性:

int arr[6]={[5]=212};

這樣寫和上面的結果是一樣的,由于前幾個元素沒有初始化,是以編譯器會自動把它們設定為0。

如果指定初始化器後面有更多的值,如:

int arr[8]={[5]=212,3,4};

這個時候arr[6]就初始化3,另外如果再次初始化之前指定的元素,那麼最後的初始化将會取代之前的初始化。

如果未指定數組元素的大小的話

如:int arr[]={1,[6]=23,4}

這個時候編譯器會把數組的大小設定為足夠裝得下初始化的值。上面這個數組的長度就是8.