Arraydeklarationen
Namen einer „Arraydeklaration“ das Array und gibt den Typ der Elemente an.Sie können die Anzahl der Elemente im Array definieren.Eine Variable mit Arraytyp wird als einen Zeiger auf den Typ der Arrayelemente.
Syntax
declaration:
Spezifizierer deklariert INIT-Deklarator Listeopt**;**INIT-DeklaratorListe:
INITDeklaratorINIT-DeklaratorListeund INITDeklarator
INITDeklarator:
DeklaratorDeklaratoren = Initialisierung
declarator:
ZeigeroptDirekt DeklaratorDirektDeklarator:
DirektDeklarator [ konstanter Ausdruckopt**]**
Da konstanter Ausdruck optional ist, wurde die Syntax zwei Formen:
Die erste Form definiert eine Arrayvariable.Das Argument des konstanten Ausdrucks innerhalb der Klammern gibt die Anzahl der Elemente im Array an.Der konstante Ausdruck, sofern vorhanden, muss ganzzahligen Typ und einen Wert, der größer null ist.Jedes Element verfügt, welcher Typ von Typspezifiziererangegeben ist, der voidaußer ein beliebiger Typ sein kann.Ein Arrayelement kann kein Funktionstyp sein.
Die zweite Form wird eine Variable deklariert, die an einer anderen Stelle definiert wurde.Sie können das Argument des konstanten Ausdrucks innerhalb der Klammern, aber nicht die Klammern weglassen.Sie können dieses Formular nur dann verwenden, wenn Sie zuvor das Array initialisiert, es als Parameter deklariert haben oder als Verweis auf ein Array deklariert, das explizit an anderer Stelle im Programm definiert ist.
In beiden Formen können Direkt Deklarator Namen der Variablen und den Typ der Variablen ändern.Die Klammern () []folgenden Direkt Deklarator ändern den Deklarator in einen Arraytyp.
Typqualifizierer können in der Deklaration eines Objekts eines Arraytyps werden, aber die Qualifizierer gelten für die Elemente statt das Array selbst auf.
Sie können ein Array aus Arrays („“) ein mehrdimensionales Array mit der Felderklärung mit einer Liste mit konstanter Ausdrücke in Klammern in dieser Form deklarieren:
type-specifier declarator [constant-expression] [constant-expression] ...
Jeder konstante Ausdruck in Klammern definiert die Anzahl der Elemente in der angegebenen Dimension: zweidimensionale Arrays haben zwei Ausdrücke in Klammern dreidimensionale Arrays haben drei usw.Sie können den ersten konstanten Ausdruck angeben, wenn Sie das Array initialisiert, es als Parameter deklariert haben oder als Verweis auf ein Array deklariert, das explizit an anderer Stelle im Programm definiert ist.
Sie können Arrays Zeiger auf verschiedene Objekttypen definieren, indem Sie komplexe Deklaratoren verwenden, wie in Komplexere interpretieren Deklaratorenbeschrieben.
Arrays sind nach Zeile gespeichert.Zum Beispiel besteht das nächste Array aus zwei Zeilen mit drei Spalten jeder:
char A[2][3];
Die drei Spalten der ersten Zeile werden zuerst gespeichert, darauf folgt die drei Spalten der zweiten Zeile.Dies bedeutet, dass der letzte Feldindex sich am schnellsten unterschieden wird.
Um ein einzelnes Element eines Arrays zuzugreifen, verwenden Sie einen Indexausdruck, wie in Postfix-Operatorenbeschrieben.
Beispiele
Diese Beispiele veranschaulichen Matrixvereinbarungen:
float matrix[10][15];
Der zweidimensionale Array, das matrix 150 Elementen mit dem Namen verfügt, die jeweils das float-Typ verfügt.
struct {
float x, y;
} complex[100];
Dies ist eine Deklaration einer Array von Strukturen.Dieses Array weist 100 Elemente. jedes Element ist eine Struktur, die zwei Member enthält.
extern char *name[];
Diese Anweisung deklariert den Typ und den Namen eines Arrays Zeiger auf char.Die tatsächliche Definition von name Stelle tritt auf.
Microsoft-spezifisch
Der Typ der ganzzahligem erforderlichem zum Speichern der maximalen Größe eines Arrays ist die Größe von size_t.Definiert in der Headerdatei STDDEF.H, ist size_t mit dem Bereich unsigned int 0x00000000 zu 0x7CFFFFFF.
Microsoft ENDES bestimmten