Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A tömb deklarációja nevet ad a tömbnek, és megadja az elemek típusát. A tömb elemeinek számát is meghatározhatja. A tömbtípusú változók a tömbelemek típusára mutató mutatónak minősülnek.
Szemantika
declaration:
declaration-specifiers
init-declarator-list
választ;
init-declarator-list:
init-declarator
init-declarator-list
,
init-declarator
init-declarator:
declarator
declarator
=
initializer
declarator:
pointer
választdirect-declarator
direct-declarator:
direct-declarator
[
constant-expression
választ]
Mivel constant-expression nem kötelező, a szintaxisnak két formája van:
Az első űrlap egy tömbváltozót határoz meg. A
constant-expressionzárójelek argumentuma a tömb elemeinek számát határozza meg. Aconstant-expression(ha van) típusnak integráltípussal és nullánál nagyobb értékkel kell rendelkeznie. Minden elemhez a megadotttype-specifiertípus tartozik, amely a kivételévelvoidbármilyen típus lehet. A tömbelem nem lehet függvénytípus.A második űrlap egy máshol definiált változót deklarál. Kihagyja az
constant-expressionargumentumot szögletes zárójelekben, a szögletes zárójelek közül azonban nem. Ezt az űrlapot csak akkor használhatja, ha korábban inicializálta a tömböt, deklarálta paraméterként, vagy deklarálta egy olyan tömbre mutató hivatkozásként, amely a program más részén explicit módon van definiálva.
Mindkét formában elnevezi a változót, direct-declarator és módosíthatja a változó típusát. Az alábbi direct-declarator zárójelek ([ ]) tömbtípusra módosítják a deklarátort.
A típusjelölők megjelenhetnek egy tömbtípusú objektum deklarációjában, de a minősítők nem magukra a tömbre, hanem az elemekre vonatkoznak.
Tömbtömböket (többdimenziós tömböt) deklarálhat úgy, hogy a tömbdeklarátort követi a zárójeles konstanskifejezések listájával ebben az formában:
type-specifierdeclarator[constant-expression][constant-expression]...
A constant-expression szögletes zárójelek az adott dimenzió elemeinek számát határozzák meg: a kétdimenziós tömbök két szögletes kifejezéssel, a háromdimenziós tömbök hárommal és így tovább. Kihagyhatja az első állandó kifejezést, ha a tömböt inicializálta, paraméterként deklarálta, vagy a program más részén explicit módon definiált tömbre mutató hivatkozásként deklarálta.
Összetett deklarátorok használatával különböző típusú objektumokra mutató tömböket határozhat meg, az Összetett deklarátorok értelmezése című szakaszban leírtak szerint.
A tömböket sor szerint tárolja a rendszer. A következő tömb például két sorból áll, egyenként három oszlopból:
char A[2][3];
A rendszer az első sor három oszlopát tárolja először, majd a második sor három oszlopát. Ez azt jelenti, hogy az utolsó alsó index a leggyorsabban változik.
Ha egy tömb egy adott elemére szeretne hivatkozni, használjon egy alsó indexű kifejezést a Postfix Operátorok szakaszban leírtak szerint.
Példák
Az alábbi példák tömbdeklarációkat szemléltetnek:
float matrix[10][15];
A kétdimenziós tömb neve matrix 150 elemből áll, amelyek mindegyike típussal rendelkezik float .
struct {
float x, y;
} complex[100];
Ez a példa egy szerkezettömb deklarációja. Ez a tömb 100 elemből áll; minden elem egy két tagot tartalmazó struktúra.
extern char *name[];
Ez az utasítás egy mutatótömb típusát és nevét deklarálja a következőre char: . A tényleges definíció name máshol történik.
Microsoft-specifikus
A tömb maximális méretének tárolásához szükséges egész szám típusa a size_tméret.
END Microsoft-specifikus kifejezés