Was ist der Zeiger in C?
Der Zeiger in C ist eine Variable, die die Adresse einer anderen Variablen speichert. Ein Zeiger kann auch verwendet werden, um auf eine andere Zeigerfunktion zu verweisen. Ein Zeiger kann inkrementiert / dekrementiert werden, d. H. Um auf den nächsten / vorherigen Speicherplatz zu zeigen. Der Zweck des Zeigers besteht darin, Speicherplatz zu sparen und eine schnellere Ausführungszeit zu erreichen.
Verwenden von Zeigern in C
Wenn wir eine Variable v vom Typ int deklarieren, speichert v tatsächlich einen Wert.
v ist jetzt gleich Null.
Abgesehen vom Wert hat jede Variable jedoch auch ihre Adresse (oder einfach ausgedrückt, wo sie sich im Speicher befindet). Die Adresse kann abgerufen werden, indem vor dem Variablennamen ein kaufmännisches Und (&) eingefügt wird.
Wenn Sie die Adresse einer Variablen auf dem Bildschirm drucken, wird sie angezeigt wie eine völlig zufällige Zahl (außerdem kann sie von Lauf zu Lauf unterschiedlich sein).
Versuchen wir dies in der Praxis mit dem Zeiger in C. Beispiel
Die Ausgabe dieses Programms ist -480613588.
Was ist nun ein Zeiger? Anstatt einen Wert zu speichern, speichert ein Zeiger die Adresse einer Variablen.
Zeigervariable
Int * y = & v;
VARIABLE
|
POINTER
|
Ein Wert, der in einer benannten Speicher- / Speicheradresse
|
Eine Variable, die auf die Speicher- / Speicheradresse einer anderen Variablen verweist.
Deklarieren eines Zeigers
Wie Variablen sind auch Zeiger in C progra mming muss deklariert werden, bevor sie in Ihrem Programm verwendet werden können. Zeiger können beliebig benannt werden, solange sie den Namensregeln von C entsprechen. Eine Zeigerdeklaration hat die folgende Form.
data_type * pointer_variable_name;
Hier
- data_type ist der Basistyp des Zeigers für die Variablentypen von C und gibt den Typ der Variablen an, auf die der Zeiger zeigt.
- Das Sternchen (*: das gleiche verwendete Sternchen) für die Multiplikation), der ein Indirektionsoperator ist, deklariert einen Zeiger.
Sehen wir uns einige gültige Zeigerdeklarationen in diesem Tutorial für C-Zeiger an:
Initialisieren Sie einen Zeiger
Nachdem wir einen Zeiger deklariert haben, initialisieren wir ihn wie Standardvariablen mit einer Variablenadresse. Wenn Zeiger in der C-Programmierung nicht nicht initialisiert und im Programm verwendet werden, sind die Ergebnisse unvorhersehbar und möglicherweise katastrophal.
Um die Adresse einer Variablen abzurufen, verwenden wir den kaufmännischen Und-Operator (&), der vor dem Namen einer Variablen steht, deren Adresse wir benötigen. Die Zeigerinitialisierung erfolgt mit der folgenden Syntax.
Zeigersyntax
pointer = &variable;
Ein einfaches Programm zur Zeigerillustration ist unten angegeben:
Ausgabe:
Address stored in a variable p is:60ff08Value stored in a variable p is:10
Operator |
Bedeutung |
* |
dient zwei Zwecken
- Deklaration eines Zeigers
- Gibt den Wert der referenzierten Variablen zurück
|
& |
Dient nur einem Zweck
- Rückgabe die Adresse einer Variablen
|
Zeigertypen in C
Im Folgenden sind die verschiedenen Arten von Zeigern in C aufgeführt:
Nullzeiger
Wir können einen Nullzeiger erstellen, indem wir während der Zeigerdeklaration einen Nullwert zuweisen. Diese Methode ist nützlich, wenn dem Zeiger keine Adresse zugewiesen ist. Ein Nullzeiger enthält immer den Wert 0.
Das folgende Programm veranschaulicht die Verwendung eines Nullzeigers:
#include <stdio.h>int main(){int *p = NULL; //null pointerprintf("The value inside variable p is:\n%x”,p);return 0;}
Ausgabe:
The value inside variable p is:0
Leerzeiger
In der C-Programmierung wird ein Leerzeiger auch als generischer Zeiger bezeichnet. Es hat keinen Standarddatentyp. Ein void-Zeiger wird mit dem Schlüsselwort void erstellt. Es kann verwendet werden, um eine Adresse einer beliebigen Variablen zu speichern.
Das folgende Programm veranschaulicht die Verwendung eines ungültigen Zeigers:
#include <stdio.h>int main(){void *p = NULL; //void pointerprintf("The size of pointer is:%d\n",sizeof(p));return 0;}
Ausgabe:
The size of pointer is:4
Wilder Zeiger
Ein Zeiger wird als wilder Zeiger bezeichnet, wenn er nicht mit irgendetwas initialisiert wird. Diese Arten von C-Zeigern sind nicht effizient, da sie auf einen unbekannten Speicherort verweisen können, was zu Problemen in unserem Programm führen und zum Absturz des Programms führen kann. Man sollte immer vorsichtig sein, wenn man mit wilden Zeigern arbeitet.
Das folgende Programm veranschaulicht die Verwendung eines Platzhalters:
#include <stdio.h>int main(){int *p; //wild pointerprintf("\n%d",*p);return
read more