記錄一種C語言中陣列的初始化方式

2021-10-14 01:45:51 字數 406 閱讀 5487

在看u-boot**過程中發現了一種陣列的初始化方式比較有趣,因此記錄下來。以下**都是在windows下用mingw32-gcc編譯器編譯通過的。

1、對陣列內所有值進行初始化。

const char init_arry[16] = ;
2、亂序對陣列內部分值進行初始化。

char init_data = ;
第2種方式僅會將已賦值的陣列元素進行初始化,其它元素會保持預設值,且陣列占用的空間按照標號最大的下標來計算,上面陣列占用16byte。

雖然大部分編譯器在編譯時會將未手動初始化的global或static型別的陣列預設初始化為0,但也遇到過極少數編譯器不會對預設元素進行處理,仍保持隨機數的形式,所以保險起見最好是將陣列或變數手動賦值。

C語言中的初始化問題

經常在c語言工程中,尤其是比較大的程式,執行過程中會出現由於記憶體或堆疊導致的各種問題,輸出錯誤或執行崩潰 1.字串陣列的初始化 1 char str 10 2 char str 10 3 char str 10 str 0 0 2.字元陣列的初始化 int a 5 錯誤 int a 5 只有第乙個...

C語言陣列初始化

陣列宣告時必須指明陣列元素的資料型別以及陣列中元素個數,計算機才可以為陣列預留出足夠的空間。陣列大小必須為常量。define size 10 int a 12 int b 100 c size 可以在宣告時通過初始值列表實現陣列元素初始化 int a 3 如果初始值列表中提供的元素個數少於陣列元素個...

C語言陣列初始化

wchar t wname 128 char cname 256 我感興趣的是 1.這種賦值的結果。2.這種形式是否符合標準編碼規則?我找到了如下資料,可能有助於對這個知識點的掌握。初始化值的個數可少於陣列元素個數。當初始化值的個數少於陣列元素個數時,前面的按序初始化相應值,後面的初始化為 0 全域...