C語言陣列初始化

2021-07-26 11:57:26 字數 898 閱讀 7717

陣列宣告時必須指明陣列元素的資料型別以及陣列中元素個數,計算機才可以為陣列預留出足夠的空間。陣列大小必須為常量。

#define size 10

int a[12];

int b[100], c[size];

可以在宣告時通過初始值列表實現陣列元素初始化:

int a[3] =;
如果初始值列表中提供的元素個數少於陣列元素個數,如:

int a[6] =;
則餘下元素均初始化為0,可通過如下方法將陣列元素全部初始化為0:

int a[6] =;
自動陣列不可以自動的初始化為0,至少要將第乙個元素初始化為0,餘下元素才可以被初始化為0。而靜態陣列如果沒有顯示的初始化則會被自動初始化為0。靜態陣列在編譯時被一次性初始化,每次程式執行仍是初始值,而自動陣列在程式執行時執行初始化。

在使用初始值列表來實現元素初始化的陣列定義語句中,如果沒有填寫陣列元素個數,則系統將初始值列表中提供的初始值個數作為陣列所擁有的元素總數:

int a =;
宣告了乙個元素個數為6的陣列。

與單下標陣列類似,多下標陣列可以在定義的時候被初始化:

int a[2][2] = , };

int b[2][2] = ;

如果沒有為指定的行提供足夠多的初始值,那麼剩餘的陣列元素將被初始化為0:

int a[2][2] = , };

int b[2][2] = ;

同樣,並非必須提供指定數量的行:

int a[3][2] = , };

C語言陣列初始化

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

c語言 柔性陣列初始化

在做專案時,遇到相似結構,差異在乙個成員,這個成員想表達可變陣列,資料結構如下 struct a struct b 目的 合併兩個結構,用同乙個結構表達 初始化變數,或陣列 首先合併ab兩個結構不難,可以使用柔性陣列 struct ab 這樣可以初始化成員 struct ab var 問題似乎解決,...

C語言 陣列指標初始化

char m 3 4 m 3 4 當然不行,不管從初始化器,還是從原理上來講都不正確,首先a 3 4 表示的是陣列中第4行第5個元素,請問,可以對陣列中具體的乙個元素賦這麼長一串值嗎?所以不能這樣賦值。第一種寫法是屬於初始化,初始化會自動為陣列中的每乙個元素賦正確的值。陣列指標初始化方法 int p...