Einführung
In der C-Programmierung ist ein Array von Zeigern ein Array, bei dem jedes Element ein Zeiger auf einen anderen Datentyp wie int, char, float usw. ist. In diesem Lab werden wir lernen, wie man auf ein Array von Zeigern auf Ganzzahlen und ein Array von Zeigern auf Zeichen zugreift.
Array von Zeigern auf Ganzzahlen
In diesem Schritt werden wir auf ein Array von Zeigern auf Ganzzahlen zugreifen. Öffnen Sie die Datei main.c im Verzeichnis ~/project/ und fügen Sie den folgenden Code ein:
#include <stdio.h>
// Global declaration.
const int MAX = 5;
int main() {
printf("\n\n\t\t==== Array von Zeigern auf Ganzzahlen ====\n\n\n");
int var[] = {10, 20, 30, 40, 50}; // initializing an array(here var) of int pointers
int i = 0;
/*
ptr ist ein Array von Zeigern auf int, d.h.
es speichert die Adresse jedes Arrayelements
*/
int *ptr[MAX];
for(i = 0; i < MAX; i++) {
/*
Weisen Sie die Adresse jedes Arrayelements
dem ptr-Array zu
*/
ptr[i] = &var[i];
}
for(i = 0; i < MAX; i++) {
/*
ptr[i] speichert die Adresse des Elements var[i].
Daher gibt *ptr[i] den Wert des Elements zurück,
das an der Stelle ptr[i] gespeichert ist
*/
printf("Wert von var[%d] = %i\n\n", i, *ptr[i]);
}
printf("\n\n\t\t==== Ende des Programms ====\n\n\n");
return 0;
}
Dieses Programm initialisiert ein Array von Zeigern auf Ganzzahlen und weist die Adresse jedes Arrayelements dem Zeigerarray zu. Anschließend druckt es den Wert jedes Elements mithilfe des Zeigerarrays.
Array von Zeigern auf Zeichen
In diesem Schritt werden wir auf ein Array von Zeigern auf Zeichen zugreifen. Fügen Sie den folgenden Code nach dem Code des vorherigen Schritts ein:
#include <stdio.h>
// Global declaration.
const int MAX = 4;
int main() {
printf("\n\n\t\t==== Array von Zeigern auf Zeichen ====\n\n\n");
char *names[] = {"Google", "Amazon", "Facebook", "Apple"}; // initializing an array(here names) of char pointers
int i = 0;
for(i = 0; i < MAX; i++) {
printf("Wert von names[%d] = %s\n\n", i, names[i]);
}
printf("\n\n\t\t==== Ende des Programms ====\n\n\n");
return 0;
}
Dieses Programm initialisiert ein Array von Zeigern auf Zeichen und weist die Adresse des ersten Zeichens jedes Strings dem Zeigerarray zu. Anschließend druckt es den vollständigen Namen jedes Elements mithilfe des Zeigerarrays.
Programm kompilieren und ausführen
In diesem Schritt werden wir das Programm kompilieren und ausführen. Öffnen Sie das Terminal und navigieren Sie zum Verzeichnis ~/project/. Geben Sie den folgenden Befehl ein, um das Programm zu kompilieren:
gcc main.c -o main
Nach erfolgreicher Kompilierung geben Sie den folgenden Befehl ein, um das Programm auszuführen:
./main
Dieser Befehl wird das Programm ausführen und die Ausgabe im Terminal anzeigen:
==== Array von Zeigern auf Ganzzahlen ====
Wert von var[0] = 10
Wert von var[1] = 20
Wert von var[2] = 30
Wert von var[3] = 40
Wert von var[4] = 50
==== Array von Zeigern auf Zeichen ====
Wert von names[0] = Google
Wert von names[1] = Amazon
Wert von names[2] = Facebook
Wert von names[3] = Apple
==== Ende des Programms ====
Vollständiger Code
#include <stdio.h>
// Global declaration.
const int MAX = 5;
int main() {
printf("\n\n\t\t==== Array von Zeigern auf Ganzzahlen ====\n\n\n");
int var[] = {10, 20, 30, 40, 50}; // initializing an array(here var) of int pointers
int i = 0;
/*
ptr ist ein Array von Zeigern auf int, d.h.
es speichert die Adresse jedes Arrayelements
*/
int *ptr[MAX];
for(i = 0; i < MAX; i++) {
/*
Weisen Sie die Adresse jedes Arrayelements
dem ptr-Array zu
*/
ptr[i] = &var[i];
}
for(i = 0; i < MAX; i++) {
/*
ptr[i] speichert die Adresse des Elements var[i].
Daher gibt *ptr[i] den Wert des Elements zurück,
das an der Stelle ptr[i] gespeichert ist
*/
printf("Wert von var[%d] = %i\n\n", i, *ptr[i]);
}
printf("\n\n\t\t==== Array von Zeigern auf Zeichen ====\n\n\n");
char *names[] = {"Google", "Amazon", "Facebook", "Apple"}; // initializing an array(here names) of char pointers
i = 0;
for(i = 0; i < MAX; i++) {
printf("Wert von names[%d] = %s\n\n", i, names[i]);
}
printf("\n\n\t\t==== Ende des Programms ====\n\n\n");
return 0;
}
Zusammenfassung
In diesem Lab haben wir gelernt, wie man auf ein Array von Zeigern auf Ganzzahlen und ein Array von Zeigern auf Zeichen zugreift. Ein Array von Zeigern ist ein Array, bei dem jedes Element ein Zeiger auf einen anderen Datentyp ist. Wir haben gelernt, wie man ein Array von Zeigern initialisiert, wie man die Adressen von Arrayelementen einem Zeigerarray zuweist und wie man die Arrayelemente mithilfe des Zeigerarrays zugreift.



