「陣列宣告」會命名陣列,並指定其元素的類型。 它也可以定義陣列中的項目數目。 具有數位類型的變數會被視為數位元素類型的指標。
語法
declaration:
declaration-specifiers
init-declarator-list
選擇;
init-declarator-list:
init-declarator
init-declarator-list
,
init-declarator
init-declarator:
declarator
declarator
=
initializer
declarator:
pointer
選擇direct-declarator
direct-declarator:
direct-declarator
[
constant-expression
選擇]
因為 是選擇性的,語法 constant-expression 有兩種形式:
第一個窗體會定義陣列變數。
constant-expression括弧內的自變數會指定數位中的項目數目。 如果constant-expression存在,就必須有整數型別,且值大於零。 每個元素都有 所提供的type-specifier型別,可以是 以外的void任何類型。 數位元素不能是函式類型。第二個窗體會宣告已在其他地方定義的變數。 它會省略括弧中的自變數,但不會省略
constant-expression括弧。 只有當您先前已初始化陣列、將其宣告為參數,或將它宣告為程式其他地方明確定義的陣列參考時,才可以使用此表單。
在這兩種形式中, direct-declarator 都會命名變數,並可修改變量的類型。 下列方括弧 ([ ]) direct-declarator 會將宣告子修改為陣列型態。
類型限定符可以出現在數位類型的物件宣告中,但限定符會套用至專案,而不是數位本身。
您可以遵循陣列宣告子,並採用此格式的括弧常數表示式清單,來宣告陣列陣列(多維度陣列):
type-specifierdeclarator[constant-expression][constant-expression]...
括弧 constant-expression 中的每個都會定義指定維度中的元素數目:二維陣列有兩個括號表達式、三維陣列有三個等。 如果您已初始化陣列、將其宣告為參數,或宣告為程式其他地方明確定義的數位參考,則可以省略第一個常數表達式。
您可以使用複雜宣告子來定義各種物件類型的指標陣列,如 解譯更複雜的宣告子中所述。
陣列會依數據列儲存。 例如,下列數位列包含兩個數據列,各有三個數據行:
char A[2][3];
第一個數據列的三個數據行會先儲存,後面接著第二個數據列的三個數據行。 這表示最後一個註標變化最快速。
若要參考數位的個別元素,請使用下標表達式,如 Postfix 運算子中所述。
範例
這些範例說明陣列宣告:
float matrix[10][15];
名為 matrix 的二維陣列有150個元素,每個元素都有 float 類型。
struct {
float x, y;
} complex[100];
這個範例是結構的陣列宣告。 此陣列有100個元素;每個元素都是包含兩個成員的結構。
extern char *name[];
這個語句會將指標陣列的類型與名稱宣告為 char。 的實際定義 name 發生在其他地方。
Microsoft 專屬的
保存數位大小上限所需的整數類型是的大小 size_t。
結束 Microsoft 特定內容