共用方式為


陣列宣告

「陣列宣告」會命名陣列,並指定其元素的類型。 它也可以定義陣列中的項目數目。 具有數位類型的變數會被視為數位元素類型的指標。

語法

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-specifier declarator [ 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 特定內容

另請參閱

宣告子和變數宣告