共用方式為


陣列宣告

"陣列宣告"名稱的陣列,並指定其元素的型別。 它也可以在陣列中定義項目的數目。 陣列型別與變數會被視為是指向陣列元素的型別。

語法

  • declaration:
    宣告規範初始化宣告子清單選擇**;**

  • 初始化宣告子清單
    初始化宣告子

    初始化宣告子清單**,** 初始化宣告子

  • 初始化宣告子
    宣告子

    宣告子**=** 初始設定式

  • declarator:
    指標選擇直接宣告子

  • 直接宣告子
    直接宣告子常數運算式選擇

因為常數運算式是選擇性的語法有兩種格式:

  • 第一個表單定義陣列變數。 常數運算式的括號內的引數會指定陣列中的項目數。 常數運算式,如果有的話,必須要有整數類資料型別,以及大於零的數值。 每個元素都由所提供的型別型別規範,它可以是任何種類,除了void。 陣列元素不能是函式型別。

  • 第二種形式宣告的其他地方定義的變數。 它省略常數運算式括號內,但不是在括號中的引數。 您可以使用此表單,您先前已初始化的陣列,它宣告做為參數,或宣告陣列參考明確定義其他地方時,才可以在程式中。

在這兩種形式, 直接宣告子名稱變數,但可以修改變數的型別。 方括號 ([]) 下列 直接宣告子修改成陣列型別宣告。

型別限定詞可以出現在宣告的陣列型別的物件,但套用至項目,而不是陣列本身的限定詞。

您可以藉由遵循一份以方括弧括起的常數運算式,這種形式的陣列宣告子宣告陣列的陣列 (一 「 多維度"的陣列):

type-specifier declarator [constant-expression] [constant-expression] ...

每個常數運算式在方括號中會定義指定維度中的項目數: 二維的陣列具有兩個括號的運算式、 三維陣列有三個,以此類推。 如果您沒有初始化陣列,它宣告做為參數,則宣告陣列參考明確定義其他地方,您可以略過第一個常數運算式中的程式。

您可以定義指標陣列通往不同類型的物件使用複雜的多個宣告中所述多個解譯更複雜宣告

陣列會儲存由資料列。 例如,下列 「 陣列 」 包含有三個資料行的兩個資料列:

char A[2][3];

第一列的三個資料行都會儲存在第一次,後面的第二個資料列的三個資料行。 這表示最後一個註標可以最快速變化。

若要參考陣列中的個別項目,使用如所述的註標運算式中, 後置運算子

範例

這些範例所示陣列宣告:

float matrix[10][15];

名為二維陣列matrix有 150 多個元素,各具有浮點數型別。

struct {
    float x, y;
} complex[100];

這是一個陣列的結構宣告。 這個陣列會有 100 的項目。 每個元素是包含兩個成員的結構。

extern char *name[];

此陳述式宣告的型別和陣列的指標名稱char。 實際定義的name ,就會發生其他地方。

Microsoft 專有的

整數陣列的大小上限的保存所需的型別是大小的 size_t。 標頭檔 STDDEF 所述。H, size_t 是unsigned int 0x00000000 到 0x7CFFFFFF 的範圍。

結束 Microsoft 特定

請參閱

概念

多個宣告和區域變數宣告