指定初始化器

2021-10-04 16:24:13 字數 777 閱讀 5150

陣列可以在定義的時候進行初始化,例如

int array[3]

=;

當初始化列表中的值少於陣列元素個數時,編譯器會自動把剩餘的元素都初始化為零,也就是說,如果不對陣列進行初始化,陣列元素和未初始化的普通變數一樣,儲存的是隨機值,但是,如果初始化陣列1中的部分數值,其他未初始化的值為零,例如

int array[3]

=;

此陣列中的array[0]=2,array[1]=0,array[2]=0;

但是,如果我只想對array[2]進行初始化,該如何操作?

這裡我就要說一說這個c99的指定初始化器了

在c99中,可以在初始化列表中使用帶方括號的下標指明帶初始化的元素,例如

int array[3]

=;

這樣就完成了上面的問題

int array[5]

=;

得到的值為array[0]=3,array[1]=8,array[2]=2,array[3]=0,array[4]=9;

在此種情況下,如果未指定元素大小,例如

int a=

;int b=

;

編譯器則自動會陣列的大小設定為足夠裝得下的初始化的值,即a陣列有7個元素,而b陣列有9個元

初始化 指定初始化

id alloc 物件的誕生過程,主要是從作業系統獲得一塊足夠大的記憶體,以存放該類的全部例項變數,並將其指定為存放記憶體物件的實力變數的位置。alloc方法同時將這塊記憶體全部設定為0。結果是 bool變數初始化為no,所有的int型別變數為0,float變數為0.0,所有的指標為nil.obje...

陣列指定初始化器

c99增加了乙個新特性 指定初始化器。利用該特性可以初始化指定的陣列元素。例如,只初始化陣列中的最後乙個元素。對於傳統的的c初始化語法,必須初始化最有乙個元素之前的所有與還俗,才能初始化它 int arr 6 這樣寫和上面的結果是一樣的,由於前幾個元素沒有初始化,所以編譯器會自動把它們設定為0。in...

結構體初始化 指定初始化

參考 c99支援結構的指定初始化專案,其語法與陣列的指定初始化專案近似。只是,結構的指定初始化專案使用點運算子和成員名 而不是方括號和索引值 來標識具體的元素。例如,只初始化book結構的成員value,可以這樣做 struct book surprise 可以按照任意的順序使用指定初始化專案 st...