Hallo und willkommen zurück. In dieser Vorlesung möchte ich eine Demonstration
oder Lösung unserer vorherigen Herausforderung anbieten, die Sie mit der Zeigersyntax, dem
Konzept eines Zeigers, dem Zuweisen einer Adresse zu
einem Zeiger und dem anschließenden Anzeigen einer Ausgabe für einen Zeiger vertraut gemacht hat.
Lassen Sie uns also Codeblöcke aufrufen, und wir werden ein neues Projekt erstellen,
ein neues c-Projekt, das nur als Zeigergrundlagen bezeichnet wird, da es die Grundlagen von Zeigern übernimmt.
Wir wissen also, wie das alles geht. Wir werden die Konsolenanwendung auswählen,
sicherstellen, dass wir c haben, und diese Zeigergrundlagen
einfach aufrufen.
Dieses Zeigerkonzept ist wirklich sehr, sehr wichtig.
Also fangen wir langsam an und gehen von dort aus weiter.
Auf geht's. Hier haben wir unsere Haupt.
Jetzt wollen wir nur noch eine Ganzzahlvariable
und dann eine Zeigervariable erstellen.
Und wir wollen beide initialisieren.
Das erste, was ich tun werde, ist, eine ganzzahlige Variable zu
erstellen und sie nur als Nummer oder Nummer zu benennen.
Und ich werde dies auf 150 initialisieren.
Um eine Zeigervariable zu erstellen, muss sie vom selben Typ sein.
Um einen Zeiger zu erstellen, müssen Sie lediglich den Datentyp und dann das Sternchen
in der Deklaration eingeben. Anschließend rufen wir diese Nummer für die Zeigernummer auf.
Normalerweise möchten Sie Ihre Variablen, die Zeiger sind, mit dem Präfix p starten.
Und es ist eine gute Idee, Ihre Zeiger immer dann auf Null zu setzen, wenn Sie sie erstellen.
Null ist ein spezielles Schlüsselwort, das besagt, dass
der Zeiger auf nichts zeigt.
Sobald wir beide
Variablen initialisiert haben, unsere num-Ganzzahl und unseren num-Integer-Zeiger, möchten
wir unserem Zeiger etwas zuweisen.
Denn im Moment zeigt unser Zeiger nichts im Speicher.
Und Sie möchten sicherstellen, dass, was auch immer
Sie Ihren Zeiger darauf zuweisen, tatsächlich Speicherplatz dafür
vorhanden ist, Speicher zugewiesen.
Wenn wir also in diesem Fall num zuweisen, ist
num eine Ganzzahl in Zeile 6, der Speicher zugewiesen ist.
C reserviert automatisch Speicher für
jede Variablendeklaration.
Sogar diesem Zeiger in Zeile 7 ist nur Speicher zum Speichern des Zeigers zugewiesen.
Dies bedeutet nicht unbedingt, dass Speicher für das zugewiesen ist, auf das es zeigt.
Um pnum, einen Wert einer Adresse, zu signieren,
müssen wir nur sagen, dass pnum gleich kaufmännisches Und ist,
das die Adresse des Operators ist,
und wir möchten dieser
die Adresse von num zuweisen.
Num hat bereits einen Speicher zugewiesen und wir haben ihn deklariert.
Zeile 9 weist also nur einem Zeiger die Adresse num zu.
So einfach ist das.
Wenn Sie nun einen Zeiger erstellen und ihm
eine Adresse zuweisen, können Sie auch Ihren eigenen dynamischen Speicher erstellen und
diesen zuweisen. Aber das ist für eine andere Übung. In diesem Fall
haben wir unsere Variable bereits erstellt. Wir werden auf den Wert dieser Variablen verweisen.
Wir müssen die Adresse von num zuweisen.
Nachdem wir unsere Aufgaben ausgedruckt haben, haben wir alles initialisiert.
Jetzt wollen wir nur noch einige Informationen ausdrucken.
Also werden wir den printf verwenden und ich werde zuerst sagen,
dass ich den Wert der pnum-Adresse ausdrucken möchte.
Nun, was ist der pnum-Wert für die Adresse,
aber die pnum-Adresse. Und hier können wir tatsächlich
die Adresse eines Zeigers
sagen, also werden wir p sagen. Und dann müssen wir nur noch
hier eingeben, wir müssen die Adresse unseres Zeigers eingeben.
Also hier würden wir Adresse von pnum sagen.
Und was wird uns das geben, das wird uns die Adresse des Zeigers geben,
der den Speicher zugewiesen hat. Es ist
nicht der Wert des Zeigerwerts. Der Wert des Zeigers wird auch eine Adresse sein, es wird die Adresse von num sein.
Also hier lasst uns zuerst auch num ausdrucken. Also hier
werden wir nur die Nummer der Adresse ausdrucken.
Und wieder möchten wir eine Adresse ausdrucken, z. B. Prozent p.
Und dann werden wir die Adresse der
Adresse von num sagen.
Und die Adresse von num sollte auch mit dem Wert von pnum übereinstimmen.
Die Adresse von pnum ist unterschiedlich, da dies der Zeiger im Speicher ist.
Also werden wir den Wert von pnum ausdrucken
oder ich sollte die Adresse von pnum sagen.
Und dann
werden wir auch den Wert des pnum ausdrucken.
Variable und dies wird auch eine Adresse sein, und dies
wird nur pnum sein.
Und als letztes möchten
wir anzeigen, auf welchen Wert pnum zeigt.
Also der Wert dessen, worauf pnum zeigt.
Und dies wird tatsächlich der Typ sein, auf den
es zeigt, eine ganze Zahl. Das wäre also Prozent d.
Und lassen Sie uns tatsächlich einige Zeilenvorschübe hinzufügen, damit wir dies lesen können.
Und was tatsächlich darauf hinweist, wie Sie diesen Wert erhalten, ist der Indirektionsoperator.
Also machst du das Sternchen und dann den Zeigernamen.
Und das wird Ihnen sagen, worauf der Wert zeigt, der 150 sein sollte.
Um dies hier in Zeile 11 noch einmal
zu wiederholen, drucken wir die Adresse num aus.
Das wird eine Zahl oder eine Hexadezimalzahl sein.
Dann drucken wir in Zeile 12 die Adresse von
pnum aus, die gerade in Zeile
sieben zugewiesen wurde, weil Sie den pnum-Zeiger irgendwo speichern müssen.
Dann drucken wir den Wert des Zeigers aus, der nur die Adresse von num ist.
Und wenn wir die Adresse von pnum ausdrucken, müssen wir das kaufmännische Und verwenden.
Und dann drucken wir mit dem Indirektionsoperator den Wert
aus, auf den pnum zeigt, auf den die Dereferenzierung erfolgt.
Lassen Sie uns nun fortfahren und
dies ausführen und ausführen, und wir sollten alle diese Werte sehen.
Die num-Adresse
genau dieser Nummer im Speicher lautet also 0060FF0C.
Die Adresse von pnum wird
etwas anderes sein, 0060FF08.
Der Wert von pnum, der die Adresse von num ist, sollte mit der ersten Zeile übereinstimmen,
und es wird FFOC ausgeführt.
Und dann ist der Wert dessen, auf was pnum zeigt, 150.
Ein Zeiger kann also wirklich drei Werte haben. Seine Adresse, der Wert
des Zeigers, der eine andere Adresse ist, und
dann der Wert dessen, auf was diese Adresse zeigt.
Und wieder gibt Ihnen kaufmännisches Und immer die
Adresse im Speicher.
Pnum enthält eine Adresse. Sie können das ausdrucken, indem
Sie den Namen des Zeigers sagen.
Und um den Wert zu erhalten, auf den es zeigt, verwenden Sie
den Indirektionsoperator, das Sternchen, und Sie erhalten den Wert 150.
Dies sind also die Grundlagen von Zeigern, um Sie mit der Syntax vertraut zu machen.
Wann die Adresse des Operators und wann der Indirektionsoperator verwendet werden
soll und dann versucht wird, nur dieses Konzept eines Zeigers zu erklären und wie ein Zeiger
den Wert einer Adresse enthält, ist der Wert eines Zeigers eine Adresse.
Spielen Sie also damit herum,
verstehen Sie diese Syntax, Zeiger sind wirklich wichtige Konzepte. Vielen Dank.