C Array von Zeigern

C Zeiger

und ähnliche Adressen.

Ein Zeigerarray speichert eine Menge von Zeigern, und jeder Zeiger kann auf ein anderes Datenobjekt zeigen.

Zeigerarrays werden häufig verwendet, um mehrere Datenobjekte zu verarbeiten, wie String-Arrays oder Arrays anderer komplexer Datenstrukturen.

Betrachten wir ein Beispiel, das ein Array aus 3 Ganzzahlen verwendet:

Beispiel

#include <stdio.h> const int MAX = 3; int main () { int var[] = {10, 100, 200}; int i; for (i = 0; i < MAX; i++) { printf("Wert von var[%d] = %d\n", i, var[i] ); } return 0; }

Wenn der obige Code kompiliert und ausgeführt wird, liefert er die folgenden Ergebnisse:

Value of var[0] = 10
Value of var[1] = 100
Value of var[2] = 200

Es kann eine Situation geben, in der wir möchten, dass ein Array Zeiger auf int, char oder andere Datentypen speichert.

Das Folgende ist eine Deklaration eines Zeigerarrays, das auf Ganzzahlen zeigt:

int *ptr[MAX];

Hier,ptrwird als ein Array deklariert, das aus MAX Zeigern auf Ganzzahlen besteht. Daher ist jedes Element in ptr ein Zeiger auf einen int-Wert. Das folgende Beispiel verwendet drei Ganzzahlen, die in einem Array von Zeigern gespeichert werden, wie unten gezeigt:

Beispiel

#include <stdio.h> const int MAX = 3; int main () { int var[] = {10, 100, 200}; int i, *ptr[MAX]; for ( i = 0; i < MAX; i++) { ptr[i] = &var[i]; /*Weisen Sie die Adresse einer Ganzzahl zu*/ } for ( i = 0; i < MAX; i++) { printf("Wert von var[%d] = %d\n", i, *ptr[i] ); } return 0; }

Wenn der obige Code kompiliert und ausgeführt wird, liefert er die folgenden Ergebnisse:

Value of var[0] = 10
Value of var[1] = 100
Value of var[2] = 200

Sie können auch ein Zeigerarray verwenden, das auf Zeichen zeigt, um eine Liste von Zeichenketten zu speichern, wie folgt:

Beispiel

#include <stdio.h> const int MAX = 4; int main () { const char *names[] = { "Zara Ali", "Hina Ali", "Nuha Ali", "Sara Ali", }; int i = 0; for ( i = 0; i < MAX; i++) { printf("Wert von names[%d] = %s\n", i, names[i] ); } return 0; }

Wenn der obige Code kompiliert und ausgeführt wird, liefert er die folgenden Ergebnisse:

Value of names[0] = Zara Ali
Value of names[1] = Hina Ali
Value of names[2] = Nuha Ali
Value of names[3] = Sara Ali

Betrachten wir ein weiteres einfaches Beispiel. Zuerst deklarieren wir ein Zeigerarray ptrArray, das drei Integer-Zeiger enthält. Dann richten wir diese Zeiger auf verschiedene Integer-Variablen num1, num2 bzw. num3. Schließlich verwenden wir das Zeigerarray, um auf die Werte dieser Integer-Variablen zuzugreifen.

Beispiel

#include <stdio.h> int main() { int num1 = 10, num2 = 20, num3 = 30; // Deklariere ein Array von Integer-Zeigern, das drei Zeiger enthält int *ptrArray[3]; // Die Zeiger auf verschiedene Integer-Variablen richten ptrArray[0] = &num1; ptrArray[1] = &num2; ptrArray[2] = &num3; // Verwende das Array von Zeigern, um auf die Werte dieser Integer-Variablen zuzugreifen printf("Wert bei Index 0: %d\n", *ptrArray[0]); printf("Wert bei Index 1: %d\n", *ptrArray[1]); printf("Wert bei Index 2: %d\n", *ptrArray[2]); return 0; }

Wenn der obige Code kompiliert und ausgeführt wird, liefert er die folgenden Ergebnisse:

Value at index 0: 10
Value at index 1: 20
Value at index 2: 30

Zeiger-Arrays sind in C sehr nützlich, insbesondere beim Umgang mit Datenstrukturen mit einer unbestimmten Anzahl von Elementen, wie dynamisch zugewiesenen String-Arrays oder dynamisch erstellten Struct-Arrays.

C Zeiger

Weitere Erweiterungen