Einführung
In der Programmiersprache C können Zeiger (Pointers) mithilfe von relationalen Operatoren wie größer als, kleiner als und gleich verglichen werden. In diesem Lab (LabEx) wird gezeigt, wie man Zeiger in der C-Programmiersprache vergleicht und es werden Beispiele für Zeiger gleichen und unterschiedlichen Typs gegeben, die auf dasselbe Array zeigen.
Deklarieren Sie Zeigervariablen
Beginnen Sie mit der Deklaration von zwei Zeigervariablen gleichen oder unterschiedlichen Typs, je nach den Anforderungen Ihres Programms. In diesem Beispiel werden wir zwei Ganzzahlzeiger (Integer-Pointer) mit den Namen ptrA und ptrB deklarieren.
int *ptrA, *ptrB;
Weisen Sie Speicheradressen an Zeigervariablen zu
Als Nächstes weisen Sie den Zeigervariablen eine Speicheradresse zu, indem Sie den Zeigerdeklarationsoperator (*) und den Adressoperator (&) verwenden. Dies kann auch mit einer Typumwandlung (cast) erfolgen, wie in diesen Beispielen gezeigt.
ptrA = (int *) 1;
ptrB = (int *) 2;
Vergleichen Sie Zeigervariablen
Vergleichen Sie die beiden Zeigervariablen mit einem der relationalen Operatoren. In diesem Beispiel verwenden wir den größer-als-Operator (>). Wenn die Bedingung wahr ist, wird die Anweisung innerhalb des if-Blocks ausgegeben.
if(ptrB > ptrA) {
printf("PtrB is greater than ptrA");
}
Wiederholen Sie die Schritte für verschiedene Zeigertypen
Wiederholen Sie die Schritte 1 - 3 für Zeigervariablen unterschiedlichen Typs, die auf dasselbe Array zeigen. In diesem Beispiel deklarieren wir einen Ganzzahlzeiger (ptrA) und einen Fließkommazeiger (ptrB) und weisen ihnen Speicheradressen zu.
int *ptrA;
float *ptrB;
ptrA = (int *) 1000;
ptrB = (float *) 2000;
Testen Sie den Zeigervergleich
Vergleichen Sie die beiden Zeiger mit einem relationalen Operator.
if(ptrB > ptrA) {
printf("PtrB is greater than ptrA");
}
Schreiben Sie Code in der Datei main.c
Schreiben Sie das gesamte Programm in der Datei main.c, die sich im Verzeichnis ~/project/ befindet.
#include <stdio.h>
int main() {
int *ptrA, *ptrB;
float *ptrC, *ptrD;
ptrA = (int *) 1;
ptrB = (int *) 2;
ptrC = (float *) 100;
ptrD = (float *) 200;
if (ptrB > ptrA) {
printf("ptrB is greater than ptrA\n");
}
if (ptrD > ptrC) {
printf("ptrD is greater than ptrC\n");
}
return 0;
}
Kompilieren und ausführen Sie das Programm
Kompilieren Sie das Programm mit einem C-Compiler wie GCC und führen Sie es aus, um den Zeigervergleich zu testen.
Zusammenfassung
In der C-Programmierung können Zeiger (Pointers) mithilfe von relationalen Operatoren miteinander verglichen werden. Die Beispiele in diesem Lab (Praktikum) zeigen, wie man Zeiger gleichen und unterschiedlichen Typs vergleicht, die auf dasselbe Array zeigen. Beim Vergleichen von Zeigern sollten Sie sicherstellen, dass sie auf dasselbe Array zeigen, um genaue Ergebnisse zu erhalten.



