C array
Die Sprache C unterstütztarray; sein Typ sollte ein Zeiger auf
Das Deklarieren eines Arrays deklariert nicht einzelne Variablen nacheinander, wie example0, example1, ..., example99; vielmehr deklariert es eine Array-Variable, wie example, und verwendet dann example
Alle Arrays bestehen aus zusammenhängenden Speicherstellen. Die niedrigste Adresse entspricht dem ersten Element, und die höchste Adresse entspricht dem letzten Element.

Auf ein bestimmtes Element in einem Array kann über einen Index zugegriffen werden; der erste Indexwert ist0。
Die Sprache C ermöglicht es uns auch, Zeiger zu verwenden, um Arrays zu handhaben, was Operationen auf Arrays flexibler und effizienter macht.

Arrays deklarieren
In C müssen Sie zum Deklarieren eines Arrays den Typ der Elemente und die Anzahl der Elemente angeben, wie unten gezeigt:
type arrayName [ arraySize ];
Dies wird als eindimensionales Array bezeichnet.arraySizeMuss eine ganzzahlige Konstante größer als null sein,typekann jeder gültige C-Datentyp sein. Um beispielsweise ein Array mit 10 Elementen vom Typ double zu deklarierenbalance, lautet die Deklarationsanweisung wie folgt:
double balance[10];
Nun istbalanceein verwendbares Array, das 10 Zahlen vom Typ double aufnehmen kann.
Arrays initialisieren
In C können Sie das Array Element für Element initialisieren oder eine einzelne Initialisierungsanweisung verwenden, wie unten gezeigt:
double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};
; int *p = a;
Wenn Sie die Arraygröße weglassen, ist die Größe des Arrays die Anzahl der Elemente bei der Initialisierung. Wenn also:
double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};
Sie erstellen ein Array, das genau dasselbe ist wie das im vorherigen Beispiel erstellte Array. Das Folgende ist ein Beispiel für die Zuweisung eines Werts zu einem Element im Array:
balance[4] = 50.0;
Die obige Anweisung weist dem fünften Element des Arrays den Wert 50.0 zu. Alle Arrays verwenden 0 als Index ihres ersten Elements, auch bekannt als Basisindex. Der letzte Index eines Arrays ist die Gesamtgröße des Arrays minus 1. Das Folgende ist eine grafische Darstellung des oben besprochenen Arrays:

Die folgende Abbildung zeigt ein Array mit einer Länge von10, der Indexwert des ersten Elements ist0, der Indexwert des neunten Elementsexampleist8:
Zugriff auf Array-Elemente
Auf Array-Elemente kann über den Array-Namen plus einen Index zugegriffen werden. Der Index eines Elements wird in eckigen Klammern nach dem Array-Namen angegeben. Zum Beispiel:
double salary = balance[9];
Die obige Anweisung weist der Variablen salary den Wert des 10. Elements des Arrays zu. Das folgende Beispiel verwendet die drei oben genannten Konzepte, nämlich das Deklarieren eines Arrays, das Zuweisen eines Arrays und den Zugriff auf ein Array:
Beispiel
Wenn der obige Code kompiliert und ausgeführt wird, liefert er die folgenden Ergebnisse:
Element[0] = 100 Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104 Element[5] = 105 Element[6] = 106 Element[7] = 107 Element[8] = 108 Element[9] = 109
Ermitteln der Array-Länge
Die Array-Länge kann mit demsizeof-Operator ermittelt werden, um die Länge des Arrays zu erhalten, zum Beispiel:
int numbers[] = {1, 2, 3, 4, 5};
int length = sizeof(numbers) / sizeof(numbers[0]);
Beispiel
int main() {
int array[] = {1, 2, 3, 4, 5};
int length = sizeof(array) / sizeof(array[0]);
printf("Array-Länge: %d\n", length);
return 0;
}
Verwenden einer Makrodefinition:
Beispiel
#define LENGTH(array) (sizeof(array) / sizeof(array[0]))
int main() {
int array[] = {1, 2, 3, 4, 5};
int length = LENGTH(array);
printf("Array-Länge: %d\n", length);
return 0;
}
Die Ausgabe des obigen Beispiels ist:
数组长度为: 5
Array-Name
In C repräsentiert der Array-Name die Adresse des Arrays, das heißt die Adresse des ersten Elements des Arrays. Wenn wir ein Array deklarieren und definieren, repräsentiert der Array-Name die Adresse dieses Arrays.
Zum Beispiel im folgenden Code:
int myArray[5] = {10, 20, 30, 40, 50};Hier ist myArray der Array-Name; er repräsentiert ein Integer-Array mit 5 Elementen. myArray repräsentiert auch die Adresse des Arrays, also die Adresse des ersten Elements.
Der Array-Name selbst ist ein konstanter Zeiger, das heißt, sein Wert kann nicht geändert werden; einmal bestimmt, kann er nicht auf eine andere Stelle zeigen.
Wir können den Operator & verwenden, um die Adresse des Arrays zu erhalten, wie unten gezeigt:
int myArray[5] = {10, 20, 30, 40, 50};
int *ptr = &myArray[0]; // 或者直接写作 int *ptr = myArray;Im obigen Beispiel wird die Zeigervariable ptr mit der Adresse von myArray initialisiert, also mit der Adresse des ersten Elements des Arrays.
Es ist zu beachten, dass der Array-Name zwar die Adresse des Arrays repräsentiert, in den meisten Fällen aber automatisch in einen Zeiger auf das erste Element des Arrays umgewandelt wird. Das bedeutet, dass wir den Array-Namen direkt in der Zeigerarithmetik verwenden können, zum Beispiel beim Übergeben von Argumenten an Funktionen oder beim Durchlaufen eines Arrays:
Beispiel
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]); // Der Array-Name arr wird als Zeiger behandelt
}
}
int main() {
int myArray[5] = {10, 20, 30, 40, 50};
printArray(myArray, 5); // Übergabe des Array-Namens an eine Funktion
return 0;
}
Im obigen Code akzeptiert die Funktion printArray ein Integer-Array und die Array-Größe als Parameter. Wir übergeben den Array-Namen myArray an die Funktion, und innerhalb der Funktion kann der Array-Name arr wie ein Zeiger verwendet werden.
Detaillierte Erklärung von Arrays in C
In C sind Arrays sehr wichtig, und wir müssen mehr Details über Arrays wissen. Im Folgenden sind einige wichtige arraybezogene Konzepte aufgeführt, die C-Programmierer klar verstehen müssen:
| Konzepte | Beschreibung |
|---|---|
| Mehrdimensionale Arrays | C unterstützt mehrdimensionale Arrays. Die einfachste Form eines mehrdimensionalen Arrays ist das zweidimensionale Array. |
| Arrays an Funktionen übergeben | Sie können einen Zeiger auf ein Array an eine Funktion übergeben, indem Sie den Array-Namen ohne Index angeben. |
| Arrays aus Funktionen zurückgeben | C ermöglicht das Zurückgeben von Arrays aus Funktionen. |
| Zeiger auf ein Array | Sie können einen Zeiger auf das erste Element eines Arrays erzeugen, indem Sie den Array-Namen ohne Index angeben. |
| Statische Arrays und dynamische Arrays | Statische Arrays reservieren Speicher zur Kompilierzeit mit einer festen Größe, während dynamische Arrays manuell Speicher zur Laufzeit mit einer variablen Größe reservieren. |