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.

C 中的数组

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

#include <stdio.h> int main () { int n[ 10 ]; /*n ist ein Array mit 10 Ganzzahlen*/ int i,j; /*Array-Elemente initialisieren*/ for ( i = 0; i < 10; i++ ) { n[ i ] = i + 100; /*Setze Element i auf i + 100*/ } /*Gib den Wert jedes Elements im Array aus*/ for (j = 0; j < 10; j++ ) { printf("Element[%d] = %d\n", j, n[j] ); } return 0; }

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

#include <stdio.h>

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

#include <stdio.h>

#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

void printArray(int arr[], int size) {
    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:

KonzepteBeschreibung
Mehrdimensionale ArraysC unterstützt mehrdimensionale Arrays. Die einfachste Form eines mehrdimensionalen Arrays ist das zweidimensionale Array.
Arrays an Funktionen übergebenSie können einen Zeiger auf ein Array an eine Funktion übergeben, indem Sie den Array-Namen ohne Index angeben.
Arrays aus Funktionen zurückgebenC ermöglicht das Zurückgeben von Arrays aus Funktionen.
Zeiger auf ein ArraySie können einen Zeiger auf das erste Element eines Arrays erzeugen, indem Sie den Array-Namen ohne Index angeben.
Statische Arrays und dynamische ArraysStatische Arrays reservieren Speicher zur Kompilierzeit mit einer festen Größe, während dynamische Arrays manuell Speicher zur Laufzeit mit einer variablen Größe reservieren.
Weitere Erweiterungen