Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Eine "Arraydeklaration" benennt das Array und gibt den Typ seiner Elemente an. Sie kann auch die Anzahl der Elemente im Array definieren. Eine Variable mit Arraytyp wird als Zeiger auf den Typ der Arrayelemente betrachtet.
Syntax
declaration:
declaration-specifiers
init-declarator-list
optieren;
init-declarator-list:
init-declarator
init-declarator-list
,
init-declarator
init-declarator:
declarator
declarator
=
initializer
declarator:
pointer
wählendirect-declarator
direct-declarator:
direct-declarator
[
constant-expression
optieren]
Da constant-expression die Syntax optional ist, weist die Syntax zwei Formen auf:
Das erste Formular definiert eine Arrayvariable. Das
constant-expressionArgument in den Klammern gibt die Anzahl der Elemente im Array an. Wennconstant-expressionvorhanden, muss der integrale Typ und ein Wert größer als 0 sein. Jedes Element weist den Typ auf, der vontype-specifier, mit Ausnahmevoideines beliebigen Typs angegeben werden kann. Ein Arrayelement kann kein Funktionstyp sein.Das zweite Formular deklariert eine Variable, die an anderer Stelle definiert wurde. Es wird das
constant-expressionArgument in eckigen Klammern, aber nicht in den Klammern weggelassen. Sie können dieses Formular nur verwenden, wenn Sie das Array zuvor initialisiert, als Parameter deklariert oder als Verweis auf ein Array deklariert haben, das explizit an anderer Stelle im Programm definiert ist.
Benennt in beiden Formularen direct-declarator die Variable und kann den Typ der Variablen ändern. Die Klammern ([ ]) nach direct-declarator dem Ändern des Deklarators in einen Arraytyp.
Typenqualifizierer können in der Deklaration eines Objekts vom Arraytyp angezeigt werden, aber die Qualifizierer gelten für die Elemente anstelle des Arrays selbst.
Sie können ein Array von Arrays (ein "mehrdimensionales" Array) deklarieren, indem Sie dem Arraydeklarator eine Liste mit klammern konstanten Ausdrücken in dieser Form folgen:
type-specifierdeclarator[constant-expression][constant-expression]...
Jeder constant-expression in eckigen Klammern definiert die Anzahl der Elemente in einer bestimmten Dimension: zweidimensionale Arrays weisen zwei klammerte Ausdrücke auf, dreidimensionale Arrays haben drei usw. Sie können den ersten Konstantenausdruck weglassen, wenn Sie das Array initialisiert, als Parameter deklariert oder als Verweis auf ein Array deklariert haben, das an anderer Stelle im Programm explizit definiert ist.
Sie können Arrays von Zeigern auf verschiedene Objekttypen definieren, indem Sie komplexe Deklaratoren verwenden, wie in der Interpretation komplexerer Deklaratoren beschrieben.
Arrays werden nach Zeile gespeichert. Das folgende Array besteht beispielsweise aus zwei Zeilen mit jeweils drei Spalten:
char A[2][3];
Die drei Spalten der ersten Zeile werden zuerst gespeichert, gefolgt von den drei Spalten der zweiten Zeile. Dies bedeutet, dass der letzte Tiefgestellt am ehesten variiert.
Um auf ein einzelnes Element eines Arrays zu verweisen, verwenden Sie einen tiefgestellten Ausdruck, wie in Postfix-Operatoren beschrieben.
Beispiele
Diese Beispiele veranschaulichen Arraydeklarationen:
float matrix[10][15];
Das zweidimensionale Array mit dem Namen matrix weist 150 Elemente auf, die jeweils Typ aufweisen float .
struct {
float x, y;
} complex[100];
Dieses Beispiel ist eine Deklaration eines Arrays von Strukturen. Dieses Array weist 100 Elemente auf; jedes Element ist eine Struktur mit zwei Elementen.
extern char *name[];
Diese Anweisung deklariert den Typ und den Namen eines Arrays von Zeigern auf char. Die tatsächliche Definition tritt name an anderer Stelle auf.
Microsoft Specific
Der Typ der ganzen Zahl, die zum Halten der maximalen Größe eines Arrays erforderlich ist, ist die Größe von size_t.
Ende Microsoft-spezifisch