Zeiger in C | Achraf Mad | Skillshare

Playback-Geschwindigkeit


1.0x


  • 0.5x
  • 0.75x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      1 Einführung

      2:21

    • 2.

      2 Einführung in die Zeiger in C

      12:16

    • 3.

      3 Erste praktische Beispiel lösen

      5:18

    • 4.

      4 Werteinschätzung und Adresse in C übergeben

      3:28

    • 5.

      6 Zeiger Erhöhung und decrement

      6:54

    • 6.

      7 Zeiger Hinzufügen und Subtraktion

      7:16

    • 7.

      8 Zeiger und Arrays

      11:15

    • 8.

      9 Verstopfender wilder Wilder und Null-Zeiger

      10:42

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

81

Teilnehmer:innen

2

Projekte

Über diesen Kurs

Zeiger in C für eingebettete Systeme Dieser Kurs lehrt dir, wie du Zeiger in C verwendest, um leistungsstarke Embedded Systems Programme zu erstellen.

Was du lernen wirst

  • Dieser Kurs lehrt dir, wie du in C Zeiger verwendest, um leistungsstarke Embedded Systems Programme zu erstellen.
  • Du lernst, wie Zeiger deinen Code effizienter und prägnanter gestalten können.
  • Der Kurs richtet sich an Personen, die Erfahrung in der Programmierung von eingebetteten Systemen haben, aber neu in den Zeigern sind.
  • Nach Abschluss dieser Klasse kannst du Code schreiben, der sowohl effizienter als auch lesbarer ist.
  • Du erhältst auch Zugriff auf den Quellcode für alle Beispielprogramme in der Klasse.
  • Entwicklungsumgebung
  • Was sind pointers? Wie funktionieren sie? Warum brauchen wir sie?
  • So verwenden Sie Zeiger und Speicherplatzzuordnung.
  • PASS NACH WERT VS. PASS NACH ADRESSEN

In diesem Kurs untersuchen wir, welche Zeiger sind und wie sie es ermöglichen, Programmcode zu optimieren.

Tatsächlich kannst du Programme zusammenstellen, ohne Zeiger zu verwenden. Aber sie beschleunigen die Programmausführungszeit drastisch, was bei der Arbeit mit Mikrocontrollern oft sehr wichtig ist. In dieser Klasse wird angesichts der Komplexität bestimmter Datentypen und des Werts von Bytes eine Erklärung zur Effektivität der pointer erläutert.

Programmperformance kann durch die Verwendung von Zeigern beim Arbeiten an einem Algorithmus deutlich beschleunigt werden. In diesem Kurs lernst du auch, wie verschiedene Arten von Zeigern in C verwendet werden.

Diese Klassifikationen sollen den Schülern beibringen, wie man Zeiger in C für die Programmierung von Mikrocontrollern verwendet. Der Kurs beginnt mit den Grundlagen der Zeiger und setzt sich zu fortgeschritteneren Themen fort. Die Schüler lernen, wie man Zeiger verwendet, um Daten in microcontrollers' und Speicher zu erstellen, lesen und schreiben. Der Kurs behandelt auch, wie man Zeiger mit Arrays und Zeichenfolgen verwendet.

Wenn du einen umfassenden Leitfaden für Zeiger in C suchst, dann siehst dich nicht weiter als diesen Kurs aus. Zeiger sind einer der wichtigsten Aspekte der C-Programmierung und dieser Kurs wird dir alles beibringen, was du wissen musst. Du lernst, wie du Zeiger zum Erstellen und Zugreifen von Arrays, Zeichenfolgen und Strukturen verwendest. Du lernst auch, wie du Zeiger zur Steuerung des Programmablaufs verwendest. Der Kurs ist für Anfänger konzipiert, sodass keine Vorkenntnisse mit Zeigern erforderlich sind.

Themen sind:

  • Entwicklungsumgebung

  • Was sind pointers? Wie funktionieren sie? Warum brauchen wir sie?

  • So verwenden Sie Zeiger und Speicherplatzzuordnung.

  • PASS NACH WERT VS. ADRESSE BEGEBEN

  • VORGANG AN DEN ZEICHEN

  • Subtraktion und Addition

  • Arrays Beziehung mit Zeigern

  • Verwackeln, Wild, Void und Null-Zeiger

Triff deine:n Kursleiter:in

Teacher Profile Image

Achraf Mad

Creative Engineer

Kursleiter:in

Hello, I'm Achraf.

A passionate engineer who loves to share his knowledge with the world

Vollständiges Profil ansehen

Level: All Levels

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. 1 Einführung: Hallo und willkommen diesen neuen Kurs, in dem wir Zeiger in C kauen werden In diesem Kurs erfahren Sie, was Zeiger sind und wie sie es uns ermöglichen, den Programmcode zu optimieren. Und Sie lernen, komplexe Datentypen in eine Folge von Bytes umzuwandeln . Sie können Programme ohne Zeiger entwickeln, aber sie beschleunigen die Ausführung des Programmcodes erheblich , was besonders bei der Arbeit mit Mikrocontrollern wichtig ist . Und in diesem Kurs werden wir alles darüber behandeln. Die meisten von Ihnen wissen, dass Zeiger eines der sehr wichtigen Themen sind. Für alle eingebetteten Systemingenieure. Jeder, der in C programmiert, muss Zeiger verwenden , sonst scheitert er zurück. Viele Interviews oder Embedded-Systementwickler, Interviews stellen viele Fragen zu Zeigern. Und das Ziel dieses Kurses ist es, Ihnen beim Einstieg zu helfen und zu lernen, wie man Zeiger und die verschiedenen Arten von Zeigern nutzt , viele wichtige Themen abdecken. Wir werden alles erklären und Ihnen praktische Beispiele, Aufgaben und viele andere Ressourcen geben , die Ihnen dabei helfen, Zeiger in C zu meistern. Nun nehmen wir an, wir verfolgen was Sie wollen lerne in diesem Kurs. Sie lernen indirektes Adressieren mit Zeigern. Dann werden wir verschiedene Arten von Zeigern behandeln. Danach werden wir über Zeiger, zwei Haupttypen und Zeiger auf Arrays sprechen. Wir werden auch über Hinweise auf Funktionen sprechen. Zeiger, die ungültige, dynamische Variablen und Zeigeroperationen. Und dann sprechen wir über Datentypen, Konvertierung mit Zeigern. Und all diese Themen werden detailliert behandelt. Auch hier nehmen Sie Aufgaben entgegen, damit wir sicher sind , dass Sie das haben, was wir erklärt haben. Wir werden auch Praxisbeispiele erläutern. Wir werden sie gemeinsam lösen , um Ihnen ein praktisches Erlebnis zu bieten. Danke, dass du dir diese Einführung angesehen hast. Wir sehen uns drinnen. 2. 2 Einführung in Zeiger in C: Hallo und willkommen zu dieser neuen Lektion, in wir über Zeiger sprechen werden. Der Zeiger ist eine Variable, die die Speicheradresse als h-Wert speichert . Die Dinge sind an dieser Stelle möglicherweise nicht klar. Sprechen wir zuerst über die Syntax zum Erstellen eines Zeigers. Dann werden wir über diese Definition sprechen. Wie Sie hier sehen können, haben wir andere Syntax, um einen Zeiger zu definieren. Die erste ist, in den Zeigertyp einzugeben, das Sternzeichen hinzuzufügen, dann den Zeigernamen einzugeben und ein Semikolon hinzuzufügen. Das Gleiche passiert hier, aber anstatt das Sternchen in die Nähe des Zeigernamens zu schreiben, schreiben wir es in die Nähe des Zeigertyps. Die dritte Syntax ist die gleiche wie die ersten beiden, aber wir lassen Leerzeichen nach und vor dem Sternzeichen. In der Praxis können Sie hier sehen, dass wir einen Zeiger namens PTR haben. Der Typ dieses Zeigers ist Integer. Und um diesen Zeiger zu erstellen, müssen wir das Sternzeichen hinzufügen. Jetzt fügen wir es hier direkt vor dem Zeigernamen hinzu. Hier fügen wir es direkt nach dem Zeigertyp hinzu. Und hier fügen wir es in der Mitte zwischen dem Zeigernamen und dem Typ hinzu. Wie Sie hier sehen können, gibt es keinen Unterschied in diesen drei Syntax. Alle definieren einen Zeiger, der auf den ganzzahligen Typ zeigt, der das Hauptziel eines Zeigers ist. Jetzt zeigt wieder ein Zeiger. Dies ist ein Zeiger, der auf einen Speicherort im Speicher zeigt. Auch hier ist der Zeiger eine Variable, die die Speicheradresse als Wert speichert. Um die Dinge klarer zu machen, ist dies ein Beispiel. Die Adresse des Operators ist ein unärer Operator, der durch das Symbol dargestellt wird. Und wenn Sie sich dieses Symbol angeschaut haben, nennt man das Adresse des und zeichens. Es gibt die Adresse einer beliebigen Variablen an, wenn sie dem Variablennamen vorangestellt ist. Um dies klarer zu machen, wenn wir dies und x schreiben, bedeutet dieses x jetzt, gib mir die Adresse von x. Die Adresse von x wird in PTR gespeichert. Und in diesem Fall haben wir diese Erinnerung. Und das ist die Variable x. Jetzt ist die Adresse der Variablen x 1 Tausend. Jetzt ist der Wert von x innerhalb des Speichers zehn, aber das Anzeigenrisiko von x im Speicher beträgt 1 Tausend. Um diese Zahl zu erreichen, die 1 Tausend ist, müssen wir dies und x. Also entspricht PTR hier 1 Tausend, weil wir das Unsignierte verwenden, was die Adresse bedeutet. Die Adresse des Operators ist also ein Operator, der nur ein Argument benötigt. Es ist im Grunde das und -Symbol. Es gibt die Adresse einer beliebigen Variablen wenn sie dem Variablennamen vorangestellt ist. Jetzt. Und x ist gleich zehn, was das ist. Jetzt ist x gleich zehn. Es ist ein richtiger Satz. Wir erstellen eine neue Variable namens x. Wir geben ihr einen Wert von zehn. Also wird es in den Speicher gehen, hier eine neue Variable namens x erstellen, und es gibt ihr den Wert zehn. Jetzt int asterisk sign PTR, wir erstellen einen Zeiger vom Integer-Typ namens BT off. Und hier ist dieser Punkt oder dass wir einen Videorekorder erstellt haben. Und der Datentyp ist Integer. Der letzte Schritt besteht nun darin, eine Adresse innerhalb des Zeigers hinzuzufügen. Um das zu tun, verwenden wir diese Zeile, PTR entspricht der Adresse von x. Jetzt ist es wieder ein Zeichen, es wird andere abgesagt. Wir werden die Adresse von x finden, und wir werden die Adresse von x in BPR speichern. Die Adresse von x hier ist also 1 Tausend. Also speichern wir 1 Tausend in BT verwenden diese Zeile. Jetzt. Addieren Sie das aus PTR gleich was? Kannst du darüber nachdenken? Wir haben das bereits erwähnt und Sinus ist die Adresse von VTR, ist jetzt eine Variable im Speicher. Es ist ein Zeiger, aber er hat einen Speicherort im Speicher. Das ist also alles PTR und das andere, also ist der Videorecorder 2000s, also entspricht t 2 Tausend. Dieses Zeichen wird also die Adresse von Sinus genannt. Sie nun daran, dass dieser Zeiger selbst eine Variable ist eine Adresse im Datenspeicher hat. Wie jede Variable. Der einzige Unterschied besteht darin, dass der Zeiger eine Adresse einer anderen Variablen enthält. Es enthält keine regulären Daten, es enthält eine Adresse einer anderen Variablen. Lassen Sie uns nun den Bildschirm löschen , damit wir dies abschließen können. Jetzt haben wir hier eine ganze Zahl mit dem Namen x definiert und sie oft mit Wert initialisiert. Dann haben wir einen Zeiger auf int mit dem Namen VTR definiert. Danach haben wir PTR mit der Adresse von x initialisiert. Auf diese Weise haben wir alles bereit. Jetzt können wir einige Operationen durchführen. Zuerst haben wir bereits unsere Variable mit dem Namen x definiert, welcher Typ ganzzahlig ist, und gaben ihr den Wert zehn an. Wir haben den Zeiger auf n benannten Videorekorder definiert und initialisiert. Schau dir in diesem Fall diesen Satz an. Wir haben das Sternzeichen und wir haben den Zeigernamen. Und wir haben hier gleich. Jetzt ist der Dereferenzoperator ein unärer Operator, der durch das Symbolsternchen dargestellt wird. Dies wird als Dereferenzoperator bezeichnet. Und Sie müssen sich diese Namen merken, die wir bereits erwähnt haben und welche ist die Adresse davon. Jetzt haben wir das Sternzeichen, welches der Dereferenzoperator ist. Es heißt NOT Operator, was bedeutet, dass es nur eine Variable benötigt. Es arbeitet mit einer Zeigervariablen und bietet die Möglichkeit auf die Variable zuzugreifen, auf die der Zeiger zeigt. Jetzt ist es an dieser Stelle vielleicht nicht klar, aber wir nennen es d Elektronen, weil es die Notwendigkeit für die Adresse nimmt. Und es ermöglicht Ihnen , direkt mit der Variablen umzugehen , auf die der Zeiger zeigt. Lassen Sie uns dies anhand eines Beispiels erklären. Wie Sie hier sehen können, haben wir x, wir haben Videorekorder. Jetzt hat PTR die Adresse von x, die 1 Tausend ist, und x hat einen Wert von 50. Jetzt wissen wir bereits, dass x einen Wert von zehn hat. Und um es auf 50 zu ändern, machen wir folgendes. Das erste, was wir hier tun ist, dass wir diesen Dereferenzoperator schreiben. Und du kannst es hier sehen. Dann der Zeigername. Jetzt bedeutet das, gehe zur PTR und überprüfe die Adresse darin, die 1 Tausend ist. Und gehe zu der Variablen , die diese Adresse hat. In diesem Fall bedeutet der Referenz-PTR also x, denn 1 Tausend zeigt hier auf x, was diese Variable ist. Und wir sagen ihm, dass wir 50 darin aufbewahren wollen. Wir lagern es nicht in PTR. Ptr tut das. Wir speichern es in dieser Div-Referenz von PTR, die im Grunde die Variable x. also x entspricht 50. Deshalb entfernen wir zehn. Und jetzt ist ein neuer Wert 50. Lassen Sie uns nun den ANC löschen und es noch einmal erklären. Jetzt ist der x-Wert zehn. Wenn wir den Dereferenzoperator verwenden, der das Sternzeichen ist, wir ihm auf, PTR zu dereferenzieren, was ein Zeiger ist. Dereferenzieren eines Zeigers bedeutet, zu der Variablen zu gehen , auf die ein Zeiger zeigt. Und in diesem Fall zeigt der Zeiger mit dieser Adresse auf Variable x. Indem wir also ein Sternchen oder Dereferenz-PTR schreiben, sagen wir ihm auch, dass er zu x gehen und es gleich 50 machen soll. Lasst es uns jetzt erklären. Wenn wir eine andere Variable haben, sagen wir, wir haben y hier und wir haben 3 Tausend hier, was die Adresse ist. Und wir haben hier einen weiteren PTR zwischen R1. Und fügen wir die Adresse von y hinzu, 3 Tausend. Wenn du es jetzt so geschrieben hast. Jetzt machen wir den Wert von 55. Fügen wir das Sternzeichen hinzu PT R1 ist gleich, sagen wir 15. Jetzt bedeutet das Dereferenzierung. Pt R1 bedeutet, zur Variablen zu gehen oder zum Zeiger namens BT R1 zu wechseln. Rufen Sie die Adresse ab und überprüfen Sie die Variable, auf die diese Adresse verweist , und ändern Sie ihren Wert auf 15. Der erste Schritt geht also zum PT-R1-Zeiger und überprüft die Adresse. Nachdem Sie die Adresse überprüft haben, gehen Sie zu der Variablen, auf die diese Adresse zeigt, die in diesem Fall y ist, und ändern Sie den Wert von y auf 15. Also jetzt ist y gleich 15. Um die Dinge zusammenzufassen, bedeutet das Unsignierte die Adresse von PTR. Wenn wir vor dem Zeiger ein Sternzeichen hinzufügen, dereferenzieren wir den Zeiger. Daher geben wir ihm im Grunde die Möglichkeit, auf die Variable zuzugreifen , auf die der Zeiger zeigt. Und dies ist das Hauptziel dieses Dereferenzzeichens. Jetzt, in der nächsten Lektion, werden wir ein praktisches Beispiel lösen , dass Sie versuchen müssen, es selbst zu lösen. Ich musste ein Programm erstellen , das eine Ganzzahl definiert , sie mit ihnen initialisieren und dann ausdrucken. Definieren Sie anschließend einen Zeiger, der auf diese Ganzzahl zeigt , und ändern Sie den Wert der Ganzzahl durch den Zeiger auf B20. Dann drucke es nochmal aus. Jetzt ist die erwartete Ausgabe x, bevor die Änderung zehn ist. X nach Änderung ist 20. Stellen Sie sicher, dass Sie es lösen, bevor Sie mit der nächsten Lektion fortfahren. Danke, dass du diese Lektion gesehen hast. 3. 3 Erste praktische Beispiele lösen: Hallo und willkommen zu dieser neuen Lektion, in der wir die erste Frage lösen werden . Sie müssen ein Programm erstellen , das eine Ganzzahl definiert , sie mit zehn initialisieren und dann drucken. Danach. Definieren Sie einen Zeiger, der auf dieses Innere zeigt und ändern Sie den Wert des n durch die Zeiger auf B20. Dann drucke es nochmal aus. Die Ausgabe sollte dies sein. X ist zehn, dann x, nachdem es mit dem Zeiger geändert wurde, ist es 20. Um diese Frage zu lösen, verwenden alle Visual Studio-Code. Gehe zum Startmenü und rechts Visual Studio-Code. Hier ist es. Jetzt. Sie müssen eine neue Datei oder ein neues Projekt erstellen. Jetzt Datei, neue Datei. Und hier müssen Sie auf eine Sprache auswählen klicken und C wählen Jetzt können wir loslegen. Der erste Schritt besteht darin, die Std-Eingabeausgabe-String.h-Bibliothek einzuschließen , die die wichtigste Standard-Eingabe-Ausgabebibliothek für unser Programm ist . Also sollte ich Geschlechtskraft einbeziehen. Befehl zum Ätzen. Danach müssen Sie zu n gehen. Ich meine, dies wird unsere Hauptfunktion sein, die ausgeführt wird, nichts nehmen wird, was ungültig ist. Und der erste Schritt besteht darin, eine neue Ganzzahl zu definieren. Also ist x gleich 0. Dann drucke f. Lassen Sie uns den Benutzer bitten, den Wert einzugeben. Geben Sie also bitte eine Zahl ein. Jetzt müssen wir diese Nummer mit Scan f scannen . Die Nummer, die wir scannen werden, ist eine Dezimalzahl. Also hier, richtig. All dies wurde in unserem C-Programmierkurs erklärt. Und es ist nicht nötig , es noch einmal zu erklären weil wir hier Hinweise lehren. Jetzt. Wir müssen den vorherigen Wert und den neuen Wert erneut drucken . Also x vor dem Wechsel. X vor Änderung ist der Prozentsatz d. Jetzt müssen wir x mit Zeigern ändern. Lassen Sie uns also einen neuen Zeiger erstellen. Lassen Sie uns auf die Adresse von x verweisen. Um den Wert von x zu ändern, verwenden wir den Dereferenzoperator, den Asterix-PTR, und machen ihn gleich 20, was der neue Wert ist. Und wir werden dieselbe Zeile drucken, was das ist. Aber wir werden nach dem Wechsel sagen. Jetzt haben wir alles bereit und bereit. Wir können dieses x mit dem Referenz-PTR ändern und wir planen dasselbe. Wir können hier diese UTR und die andere Disziplin hinzufügen, dass dies auch x bedeutet, weil wir die Adresse innerhalb der PTR dereferenzieren, die die Adresse von x ist, also wird es der Wert von x sein. weil wir die Adresse innerhalb der PTR dereferenzieren, die die Adresse von x ist, also wird es der Wert von x sein. , beachte den Code. Sie können es einfach auf den Notepad Plus, Plus einfügen , wie wir bereits erklärt haben, und speichern. Nennen wir es Zeigerbeispiel. Jetzt müssen wir es als Punkt c speichern und lassen Sie es uns ausführen. Was nun IGCSE-Zeiger zeigt, zum Beispiel Nazi. Schreiben Sie danach einen Punkt EXE. Und wie du siehst, fragt es Gott, bitte gib eine Zahl ein. Sagen wir fünf. Nun, x vor Änderung ist fünf, x nach Änderung ist 20, was genau das ist, was wir hier gemacht haben. Wir ändern den Wert von x mit Zeigern. Das war's für diese Lektion. Danke fürs Zuschauen. 4. 4 Durchlauf für Wert und Durchlauf für Adresse in C: Hallo und willkommen zu dieser neuen Lektion , in der wir Wert und Übergabe von Adresse erklären werden. In dieser Lektion werden wir diese beiden Registerkarten zur Übergabe von Wert und Adresse besprechen . Der erste Typ wird nach Wert übergeben. Dies bedeutet, dass Sie eine Kopie im Speicher des tatsächlichen Parameterwerts erstellen, der übergeben wird. Eine Kopie des Inhalts des tatsächlichen Parameters. Während in der Vergangenheit nach Adresse oder als Referenz übergeben. Sie erstellen im Grunde eine Kopie im Speicher der Adresse des tatsächlichen Parameters. Zwei erstellen keine Kopie des Parameterwerts. Wir erstellen eine Kopie im Speicher der Adresse des tatsächlichen Parameters. Werfen wir einen Blick auf diese Beispiele. Auch hier wird der Wert übergeben eine Kopie im Speicher des tatsächlichen Parameters erstellt, während die Übergabe an Adresse oder Refinanzierung eine Kopie im Speicher der Adresse des tatsächlichen Parameters erstellt. Also hier machen wir eine Kopie der Adresse. Hier machen wir eine Kopie des eigentlichen Parameters. Wie Sie in diesem Beispiel sehen können, haben wir hier eine Funktion und diese Funktion wird von der Wertefunktion aufgerufen. Es dauert Integer x. Jetzt nimmt diese Funktion ein Argument nach Wert an , da sie einen tatsächlichen Wert annimmt , der im Grunde eine Variable x vom Typ Integer ist. Wenn wir die Funktion aufrufen, übergeben wir die Variable, übergeben wir die Variable, indem wir eine Kopie des eigentlichen Parameters erstellen. Wir beschäftigen uns hier nur mit tatsächlichen Werten, tatsächlichen Parametern, wir haben es nicht mit Adressen zu tun. Wenn es nun darum geht, an Adresse oder Referenz zu übergeben , wie Sie sehen können, haben wir in dieser Funktion eine Funktion, die von anderen aufgerufen wird , und sie nimmt einen Zeiger als Eingabe. Also ganzzahliges Sternchen PTR, das ist ein Zeiger. Nun nimmt diese Funktion eine Adresse als ungerade an. Die Eingabe für diese Funktion muss also eine Adresse sein. Und wir übergeben die Variable z an anderen hier. Wir können nicht hinzufügen, weil es sich im Grunde um einen Wert handelt. Und diese Funktion will eine Adresse. Also hier haben wir das und -Zeichen hinzugefügt, was die Adresse davon bedeutet. Wie Sie hier sehen können. Jetzt wird die Adresse von z an die Byteadressfunktion übergeben. Während hier der Wert von z durch die Wertefunktion übergeben wird. Also machen wir im Grunde eine Kopie des eigentlichen Parameters. Während wir hier drin sind, machen wir eine Kopie im Speicher der Adresse, deren die Adresse des tatsächlichen Parameters ist. Und dies ist der Hauptunterschied zwischen Wert übergeben und Adresse übergeben. Es gibt verschiedene Anwendungsfälle und Sie werden einige praktische Beispiele annehmen. Aber das ist alles, was Sie vorerst wissen müssen, um Wert zu übergeben und an Adresse zu übergeben. 5. 6 Hinweise erhöhen und Dekret: Hallo und willkommen zu dieser neuen Lektion. Wir sprechen über Operationen an Zeigern. Jetzt. Die erste Operation, über die wir sprechen werden, sind die Inkrement- und Dekrementierungsoperationen. Der Inkrementvorgang erhöht den Zeigerwert um einen Schritt. Nun haben wir nicht mit einem Byte gesagt, da dieser Schritt 148 sein könnte oder eine beliebige Anzahl von Bytes die Größe des Punktes t hat. Wenn wir nun PTR plus plus schreiben, wenn wir davon ausgehen, dass PTR ein Zeiger auf Integer ist, dann wenn wir es sind wenn wir plus sagen, gehen wir einen ganzzahligen Schritt, der im Grunde vier Bytes ist. Abhängig von Ihrem Compiler. Der Compiler hat eine ganze Zahl als vier Bytes. Dies bedeutet, dass jedes Inkrement der Adresse von PTR vier Bytes hinzufügt. Unter der Annahme, dass eine PTR-Adresse 1 Tausend beträgt, bedeutet dies, dass wir aufgrund dieser vier Bytes jetzt bei 1004 sind . Jedes Inkrement oder jedes Zeigerinkrement erhöht also den Zeigerwert um einen Schritt. Auch hier ist der Stub die Größe des Points ohne Ganzzahl, Zeichenfolge oder Zeichen oder welche Art von Daten auch immer. Wenn es um das Dekrement geht, ist es das gleiche Szenario. Verringert den Zeigerwert um einen Schritt. Es ist so geschrieben , PTR minus minus. Und wenn wir davon ausgehen, dass die ganze Zahl vier Bytes hat, bedeutet dies, dass sie vier Schritte zurückgehen wird, sie wird 996 werden. Und so funktionieren Inkremente und Dekremente im Grunde . Jetzt sehen wir uns das in der Praxis an. Beginnen wir nun mit einem einfachen Beispiel. Hash enthält stdio.h. Jetzt int main, void. Wählen wir die Sprache aus, die c sein soll. Jetzt erstellen wir eine neue Variable und x entspricht zehn und erstellen einen Zeiger. Jetzt wird PTR die Adresse von x. Und das sind drei einfache Sätze. Was wir jetzt tun müssen, ist die PTR zu erhöhen oder zu dekrementieren. Aber zuerst müssen wir drucken. Schreiben wir also print f PTR-Adresse, und wir müssen die Adresse des Zeigers drucken. Fügen Sie nun P als Formatbezeichner hinzu. Und p N steht hier für Zeigerschrägstrich n. Und danach können Sie die Adresse einer ECS-Instanz hinzufügen. Sie können PTR hinzufügen, beide Arbeiten. Jetzt fügen wir die Adresse von x. Um zu verhindern, dass die Anzeige korrekt ist, müssen wir sie als ungültig umwandeln. Lassen Sie uns das nun ausführen, um zu sehen, wie die Dinge laufen werden. Öffnen Sie also den enthaltenden Ordner, speichern wir zuerst diese Datei. Nennen wir es Zeigerelement. Mal sehen. Lassen Sie uns danach diesen Zeiger kombinieren. Verwenden wir zuerst ls, GCC-Zeigerpunkt c. Jetzt suchen wir eine EXE. Und hier haben wir PTR-Adresse ist 01, F, 1 Viertel. Jetzt können wir dieses Inkrement und dieses Dekrement ausführen , um zu sehen, wie die Dinge laufen werden. Hier drin können Sie PTR plus plus und PTR minus minus sagen. Jetzt werden Sie feststellen, dass, wenn wir dies durch PTR ersetzen, versuchen wir, die Codes auszuführen. Wie Sie sehen können, erzielen wir die gleichen Ergebnisse. Jetzt. Drucken wir dasselbe nach den Inkrementen und drucken dann dasselbe nach dem Doppelpunkt aus. Jetzt erhöht das Inkrement die Adresse um vier, was die Anzahl der Bytes und eine Ganzzahl ist. Dann wird es mit dem Dekrement um vier zurückbekommen. Mal sehen, wie die Dinge laufen werden. Geht zurück. Lassen Sie uns mit GCC kombinieren. Lasst uns rennen. Hier ist es. Wie Sie hier sehen können, 61 E14. Nachdem wir um vier Bytes erhöht haben, sind es 18. Jetzt habe ich den Wert erneut verringert, PDR minus minus. Jetzt ist es wieder auf eins, um vier Byte erhöht und dann um vier Balken reduziert. Also geh zum ursprünglichen Ort. Auch hier, PTR, erhöhen und verringern je nach Art des Punktes. Jetzt können wir es in Charakter ändern. Wenn wir jetzt wieder hierher gehen, versuchen wir es zu kombinieren. Führen Sie nun aus, wie Sie sehen können, dass dieser Schauspieler nur ein Byte ist. Jetzt ist es bei 17, indem es bei 18 erhöht wird. Und indem er erneut dekrementiert hat, spuckte sie am 17. Wie Sie sehen können, erfolgt das Inkrement und das Dekrement je nach Datentyp auf Byteebene. Und es erhöht und dekrementiert die Adresse. Nicht der Wert. Danke, dass du diese Lektion gesehen hast. Wenn Sie Fragen haben, bin ich hier, um Ihnen zu helfen. 6. 7 Hinweise hinzufügen und Subtraktion: Hallo und willkommen zu dieser neuen Lektion , in der wir über Addition und Subtraktion von Zeigern sprechen werden. Um nun den Wert vom Zeiger zu subtrahieren, definieren wir zuerst einen neuen Zeiger. Fügen wir also x gleich zehn hinzu. Und das erzeugt einen Zeiger. Lassen Sie uns diesen Zeiger auf die Adresse von x. Nun definieren wir diese, wie in unserem vorherigen Beispiel, und wir werden damit Operationen durchführen. Der erste Schritt ist Subtraktion vom Zeiger zum Subtrahieren des Wertes vom Zeiger. Ptr entspricht PTR minus, sagen wir vier. Weil wir es mit einer Ganzzahl zu tun haben. Hier geht davon aus, dass die Ganzzahl vier Bytes beträgt. Aber Sie können jeden Wert subtrahieren. Sobald Sie diesen Befehl ausführen, gehen wir davon aus, dass die PTR-Adresse 1 Tausend beträgt, wird es jetzt 960 oder 84 , weil wir vier Bytes haben und vier mal vier 16 Bit sind. Also sind wir 16 Bit zurückgegangen. Jetzt geht es um die Bit-Level. Um die Dinge klarer zu machen, drucken wir. Danke. Drucken Sie also f, Adresse, Wert, der Prozentsatz ist Nähen und Schrägstrich. Jetzt möchten wir hier den PTR-Wert drucken. Wir müssen es auswerfen. Und dann können wir B2 hinzufügen. Jetzt um den Wert zu drucken, nachdem wir vier davon abgezogen haben. Gehen wir zurück und führen das aus. Also sparen Sie. Dies ist der Name unserer Datei. Also lasst uns den Namen kopieren. Jetzt. Lassen Sie uns diesen Code ausführen. Jetzt, Compiler GCC E. Und hier haben wir es. Wie Sie hier sehen können. Der Wert vor der Subtraktion ist wenn B14. Jetzt ist der Wert nach der ersten Subtraktion, Subtraktion, 04. Und hier drinnen sind wir zurückgegangen. Wie Sie sehen können, haben wir vier davon abgezogen. Jetzt wissen Sie genau, wie viele Schritte wir zurückgegangen sind. Subtrahieren wir einen. Speichern Sie diesen Code jetzt erneut, gehen Sie zurück, kombinieren Sie den Code und führen Sie den Code aus. Wie Sie sehen können, sind wir von 14 auf zehn gestiegen, als wir einen subtrahierten . Wir sind vier Schritte zurückgegangen. Wenn wir nun vier subtrahieren, werden wir 16 Schritt zurückgehen. Eine andere Sache, die Sie mit Zeigern machen können , ist, den Zeiger vom Zeiger zu subtrahieren. Lassen Sie uns also eine andere Variable erstellen. Nennen wir es y. Und lasst uns einen weiteren Zeiger erstellen. Nennen wir das und dieses Tool. Und lassen Sie uns die Werte x und y ändern. Beta1, beta2. Hier haben wir PTR eins, und hier haben wir PTR C2. Was wir tun müssen, ist folgendes. Wir werden int x gleich R1 minus PTR erstellen. Hier gehen wir davon aus, dass wir zwei Zeiger haben. Und beide sind Zeiger auf Integer, die vier Bytes sind. Jetzt gibt PTR eins minus Beta zwei die Anzahl der Schritte zwischen ihnen zurück. Also lasst uns das machen. Und der letzte Schritt ist das Drucken. Das Ergebnis ist Prozentsatz d Slash n. Und n. Hier müssen wir x über x hinzufügen. Nun gehen wir zurück zur Befehlszeile. Jetzt. Wir haben hier ein Problem. X ist wieder definiert, also müssen wir es schaffen. Wie Sie hier sehen können, haben wir einen Punkt oder einen anderen. Wir haben Hinweise, die wir ansprechen müssen. Und wir haben Zeiger ein Frame-Zeiger-Werkzeug subtrahiert. Und wir haben herausgefunden, dass der Abstand zwischen ihnen diese Zahl ist. Wenn es nun um die Hinzufügung von Zeigern geht, können wir einem Zeiger einen Wert hinzufügen. Um das zu tun, können wir einfach folgendes tun. Wir können sagen, dass PTR V1 V1 gleich V2 R1 plus sagen wir vier. Und wir können es mit dem Befehl print drucken , den wir alle verwendet haben. R1, ungültig B bis R1. Okay? Jetzt wissen wir bereits , dass wir auf andere hier gedruckt werden. Mal sehen, wie sich dies auf das Ergebnis auswirken wird. Jetzt bearbeite EXP. Und hier sind wir. Dies ist die Adresse von PT R1. Und dies ist die Adresse nach dem Hinzufügen vier zum PT R1-Wert. Wie Sie sehen können, bewegt es sich von 08 auf 18. Und darüber sprechen wir. können Sie Werte einfach hinzufügen oder subtrahieren Je nach Art der Operation können Sie Werte einfach hinzufügen oder subtrahieren. Nun, was nicht erlaubt ist, ist, dass es einen Zeiger auf einen Zeiger wie den zu subtrahieren hier drin hinzuzufügen verboten ist, einen Zeiger auf einen Zeiger wie den zu subtrahieren hier drin hinzuzufügen. Es ist nicht zulässig und führt zu einem Compilerfehler. Wenn Sie versuchen, einen Punkt bei 1 oder zwei mit einem Pluszeichen hinzuzufügen, erhalten Sie einen Kompilierungsfehler. Es ist also nur erlaubt, dem Zeiger einen Wert hinzuzufügen. Es ist nicht erlaubt, zwei Zeiger zusammen hinzuzufügen. Sie können den Wert jedoch von einem Zeiger subtrahieren oder zwei Zeiger voneinander subtrahieren. Das war's für diese Lektion. Wenn Sie Fragen haben, wenden Sie sich bitte an und ob Sie im Vorstand sind. 7. 8 Hinweise und Arrays: Hallo und willkommen zu dieser neuen Lektion, in der wir über Arrays und Funktionen sprechen werden. Das erste, was Sie wissen müssen , ist, dass der Name des Arrays die Adresse des ersten Elements darin ist. Wenn wir also speichern und ARR , ein Array mit zehn Elementen, dann ist dies die Adresse des SE, des ersten Elements und des Arrays, das Element 0 ist. Es ist genau so, als würde man sagen , dass ein Risiko für ein alle 0 ist. Diese beiden sind identisch. Definieren eines Arrays mit dieser Methode bedeutet also , dass wir auf die Adresse des ersten Elements im Array zeigen . Jetzt werden alle Elemente des Arrays nacheinander im Speicher gespeichert. Das heißt, wenn Sie einen Zeiger auf das erste Element im Array haben , durch Inkrementieren des Zeigers der Punkt oder zeigt auf das zweite Element und erhöht es weiter, um das dritte zu erreichen, vierter, fünfter und so weiter. Nun ist eine weitere gute Sache, die zu wissen ist , dass der Umgang mit dem Array und der Tatsache , dass Tierdaten die Adresse ihres ersten Elements sind, es uns ermöglichen, viele Dinge mit Arrays zu tun , indem wir sie als Zeiger. Auch hier ist ARR identisch mit der Adresse von 0. Das heißt, wenn Sie den Array-Namen ARR an die aufgerufene Funktion übergeben , sagen wir Funktion. Also funktioniere. Und wir geben es. Dann geben wir in diesem Fall die Adresse weiter. Wir geben keinen Wert weiter. Dieser Funktionsprototyp sollte also als Follow-void-Funktion deklariert werden . Und hier müssen wir sicherstellen , dass wir einen Zeiger hinzufügen. Wir gehen nicht nach Wert. Wir geben Kuchen Alice vorbei, obwohl wir schreiben, schreiben wir nichts, wir nichts darauf hinweist , dass dies ein Zeiger ist. Aber wie wir bereits erwähnt haben, ist dies der Name unseres Arrays. Und der Name des Arrays ist im Grunde die Adresse des ersten Elements im Array. Und das kommt viel, ein MCQ Fragen und Interviews und in vielen verschiedenen Szenarien. Jetzt innerhalb der Funktion, wenn wir PTR dereferenzieren wollen, was der Zeiger ist. Dies bedeutet, dass wir auf das erste Element des Arrays zugreifen. Und wenn wir es geschafft haben, haben wir die PTR um eins erhöht. Dann greifen wir auf das zweite Element dieses Arrays zu. B bis R. Zwei ist das dritte Element und so weiter. Sie müssen sicherstellen, dass diese Notizen berücksichtigt werden, wenn Sie mit Arrays innerhalb von C arbeiten . Da Arrays Zeigern sehr ähnlich sind und das Verständnis von Zeigern den Umgang mit Arrays ermöglicht sind eine viel einfachere Arbeit. Ein weiterer wichtiger Hinweis ist tiefgestellte TR- und Dereferenzoperator im Umgang mit Zeigern und Arrays. Nun, der Index Operator , der diese beiden Zeichen sind, wurde mit Arrays verwendet, wenn wir ein neues Array definieren. Es kann auch mit Zeigern verwendet werden. Sagen wir also, wir haben einen Zeiger. Also lasst uns einen Kommentar abgeben. Okay. Sagen wir, wir haben einen Zeiger, PTR. Wenn wir nun PTR 0 sagen und diesen tiefgestellten Operator verwenden, diesen tiefgestellten Operator verwenden, bedeutet dies dasselbe wie schöne Tanzdetails zu sagen. Diese beiden sind identisch. Wir rufen das erste Element oder die erste Adresse des Zeigers auf. Wenn wir nun nach der Zeigeradresse auf die zweite Adresse zugreifen möchten , können wir einfach eine PTR schreiben. Und dann greifen wir in diesem Fall die Adresse neben dieser ersten PTR-Adresse zu. Und es ist dasselbe wie jetzt PTR hier ist das gleiche wie die Dereferenzierung von PTR blas eins. Und PTR zehn zum Beispiel ist das Gleiche wie die Dereferenzierung der PTR, die zehn verloren hatte. Und das ist der Hauptpunkt hier. Wir können die tiefgestellten zwei benutzen. Operator mit Zeigern, genau wie Arrays, um ein genaues Element zu erreichen oder zu finden. Um die Dinge noch klarer zu machen, warum nicht? Wir versuchen dies an einem praktischen Beispiel. Lasst uns das alles entfernen. Jetzt. Zuerst definiere ich eine Funktion. Und wie die meisten von Ihnen wissen, müssen wir zuerst den Prototyp aufrufen oder einen Prototyp initiieren, um eine Funktion zu definieren . Und dann müssen wir die Funktion, die Funktionsimplementierung, implementieren . Dann müssen wir es anrufen. Fangen wir zuerst mit dem Prototyp an. Nennen wir es lustig. Und hier drin und Sternchen PTR. Diese Funktion nimmt also PTR oder Zeiger als Eingabe an und gibt nichts zurück. Lasst uns nun die Funktionsimplementierung finden. Entfernen Sie dies, fügen Sie zwei geschweifte Klammern hinzu. Hier drin. Wir müssen eine for-Schleife hinzufügen. Innerhalb dieser for-Schleife wird von 0 auf, sagen wir mal, zehn I plus plus plus. Und hier müssen wir print f hinzufügen und hier müssen wir die Werte drucken. Und wir wären zu schwer. Aber anstatt die PTR allein zu bekämpfen, werden wir den tiefgestellten TR verwenden und genau wie bei Arrays hinzufügen. Danach können wir die Funktion aufrufen. Jetzt kommt der Trick. Wenn wir die Funktion aufrufen, übergeben wir nicht, sagen wir einen Wert, wir übergeben eine Adresse, weil wir , wie Sie in der Funktionsimplementierung sehen können, einen Zeiger erhalten. Jetzt erstellen wir ein Array und ARR dann gleich, und geben wir ihm zehn Werte an. Also 12345678910. Um nun eine Adresse an diese Funktion zu übergeben, können wir dies mit dem Array tun. Wie wir bereits erwähnt haben. Wir haben bereits erwähnt, dass das Array oder Array von zehn im Grunde die gleiche Weise ist wie das Aufrufen des ersten Elements in diesem Array. Um also die Adresse des ersten Elements aufzurufen, müssen wir sie mit ARR übergeben , ohne etwas anderes zu schreiben. Dadurch wird sichergestellt, dass der Funk die Adresse des ersten Elements erhält. Und es wird diese Adresse um eins erhöhen, indem sie den PTR Tiefpunkt hier verwendet. Es wird also vom ersten Element zum letzten Element schleifen und dies in Aktion sehen. Lasst uns das speichern und zurückgehen. Jetzt GCC-Arrays, Zeiger. Mal sehen. Wie Sie sehen können, haben wir hier ein Problem, nämlich die Tatsache, dass ich nicht definiert bin. Definieren wir es also. Schon wieder. Jetzt. Wie Sie sehen können, haben wir das Array einfach gedruckt, ohne den Wert dieses Arrays übergeben zu müssen. 12345678910. Und wir übergeben nur die Adresse des ersten Elements dieses Arrays. Wir verwenden den Zeiger-Index , um dieses Array zu durchlaufen , indem wir einfach von einer Adresse zur nächsten zur nächsten wechseln, indem wir einen erhöhen, den PTR mit diesem Diesel oder dem tiefgestellten Operator. Ich weiß, dass die Dinge zu diesem Zeitpunkt etwas verwirrend sein könnten , aber in diesem Beispiel müssen Sie sich dieses Beispiel noch einmal ansehen. Versuchen Sie, diese Lektion mehr als einmal anzusehen , um die darin enthaltenen Informationen zu verdauen. Lassen Sie uns jetzt eine kurze Zusammenfassung machen. Der Name des Arrays ist die Adresse seines ersten Elements. Wenn wir dieses Array haben, dann ist ARR hier die Adresse von Array 0. Wenn Sie nun den Array-Namen oder ähnliches in diesem Fall an diese Funktion übergeben, geben Sie Adresse an Ende weiter. Die Funktion. Der Prototyp sollte mit einem Zeiger als Eingaben deklariert werden. innerhalb der Funktion func Wenn wir jetzt PTR dereferenzieren, greifen wir auf das erste Element des Arrays zu. Und wir können auf das erste Element zugreifen indem wir entweder PDR schreiben, letzte Element, um auf das zweite Element zuzugreifen. Oder wir können einfach PTR benutzen. Und hier verwenden wir Tiefpunkt oder für I. Und wir beginnen mit dem ersten angesprochenen Element. Dann das zweite Element, fügt das dritte Element hinzu. Und ich sage hier, ich würde es nur tun, weil wir es mit Adressen zu tun haben, haben wir es nicht mit Werten zu tun, weil wir gerade die Adresse des ersten Elements erhalten haben und wir schleifen durch die Adressen. Und wir drucken den Wert, diese Adressen verweisen. Das war's. Das ist kein einfaches Beispiel, ich weiß. Aber auch hier sind Operatoren oder sagen wir Zeiger nicht einfach zu erlernen. Deshalb müssen Sie sich diese Lektion mehrmals ansehen , um die darin enthaltenen Informationen zu verdauen. Wenn Sie Fragen haben oder wenn in dieser Lektion etwas nicht klar ist, fragen Sie bitte nach dem Unterkiefer, ich helfe Ihnen gerne weiter. Danke fürs Zuschauen. 8. 9 hängende wilde und Null-Zeiger: Hallo und willkommen zu dieser neuen Lektion , in der wir über baumelnde Zeiger und wilde Zeiger sprechen werden. Ein baumelnder Zeiger zeigt auf eine Speicheradresse, die früher ein Wertvolles enthielt. Da die Adresse, auf die sie zeigt, nicht mehr erhalten bleibt, führt die Verwendung zu einem erwarteten Ergebnis. Also um dies in Aktion zu sehen. Hier drin besteht der erste Schritt darin, einen Zeiger zu erstellen. Also n Asterix PTR. Was wir jetzt tun müssen, ist die malloc-Funktion zu verwenden. Diese malloc-Funktion gibt ungültig zurück. Wir müssen also in ein ganzzahliges Sternchen umwandeln, das der Zeiger auf Integer ist, um den ungültigen Zeiger in einen ganzzahligen Zeiger umzuwandeln. Also geh zurück und schreibe Integer, was im Grunde ein ganzzahliger Zeiger ist. Fahren Sie nun mit dem Modell fort und wir müssen die Größe der Funktion aufrufen. Und wir werden die Größe der Ganzzahl hier lösen. Danach erstellen wir eine Variable, nennen sie a und machen sie gleich 560. Dann müssen wir auf die Adresse von a hinweisen oder auf die Adresse verweisen. Dann verwenden wir diese freie Funktion. Die Funktion wird den Speicher einfach freigeben. Also richtig, sei PTR. Das war's. Jetzt haben wir diesen Zeiger befreit. Wir haben bereits erwähnt, dass der baumelnde Zeiger auf eine Speicheradresse zeigt , die verwendet wird, um die Variable zu halten. Da die Adresse, auf die sie zeigt, nicht mehr reserviert ist, führt die Verwendung zu unerwarteten Ergebnissen. Um Ihnen das unerwartete Ergebnis zu zeigen, können wir Folgendes tun. Wir haben die PTR zugeteilt. So können wir PTR gleich fünf schreiben , um fünf in diesem Dereferenz-Videorekorder zu speichern . Und der letzte Schritt ist das Drucken. Also drucken Sie f. Und hier werden wir den Prozentsatz d verwenden , um die Referenz von PTR zu planen. Jetzt speichern wir den Code. Und hier testen wir den baumelnden Zeiger. Also geh zurück, CLS, GCC. Okay, jetzt das siehst du baumelnde Zeiger c, k. Jetzt haben wir ein Problem. Wir haben vergessen, eine CD live einzubauen. Also lasst es uns einbeziehen. Habe den Code gespeichert und geh zurück. Schon wieder. Hier sind wir. Wie Sie hier sehen können, haben wir diesen Code kompiliert. Lassen Sie uns jetzt eine EXE ausführen. Und wie Sie sehen können, blinkt es. Jetzt haben wir nichts erhalten. Es hätte diese verschiedenen Fronten von PTR drucken sollen. Aber wie bereits erwähnt, haben wir PTR freigegeben. Dies ist also ein baumelnder Zeiger und die Verwendung nach der Zuweisung führt zu unerwarteten Ergebnissen. Das ist es, was ein baumelnder Zeiger ist. Auch hier ist ein baumelnder Zeiger ein Zeiger hinweist , ihn oder die zugewiesenen Objekte zu löschen. Und Sie müssen sicherstellen, dass Sie solche Szenarien nicht verfolgen. Und versuche sie zu vermeiden. Versuche nicht mit Zeigern zu spielen. Sie weisen sie zu oder löschen sie, ohne zu wissen , was Sie tun. Jetzt sind die zweite Art von Zeigern die wilden Zeiger. Lassen Sie uns diesen Teil kommentieren. Während Zeiger ein Zeiger ist, der vor der Initialisierung verwendet wird. Ein Beispiel dafür ist dieses Ende PTR. Wenn wir die Anweisung print f verwenden und versuchen , PTR mit der Dereferenz-PTR zu drucken. Wir haben die PTR noch nicht mit einer Adresse initialisiert. Das nennt man also eine Weile Zeiger. Speichern Sie jetzt Ihre Codes, gehen Sie zurück und kombinieren Sie es und führen Sie dann aus. Wie Sie sehen können, wieder ein unerwartetes Ergebnis, da dies unser Zeiger ist. Wir haben diesen Zeiger nicht initialisiert. Und deswegen stehen wir vor dem. Jetzt. Keine Pfeile gezeichnet, aber wir haben deshalb keine Ergebnisse erhalten. Dieser Zeiger wurde zunächst nicht initialisiert. Wie verwandelt man nun einen gültigen Zeiger in einen anderen? Also während Zeiger, Es ist einfach. Wie Sie sehen können, haben wir den Zeiger bereits erstellt, also müssen wir darauf hinweisen, dass er auf etwas hinweist. Wir können es initialisieren, indem wir einfach eine andere Ganzzahl erstellen, sie aufrufen und ihm einen Wert von zehn geben. Dann werden wir sagen, dass PTR der Adresse von x entspricht . Und jetzt können wir diesen Code erneut ausführen. Wie Sie sehen können, haben wir fünf, was dem Wert von x entspricht. Und das ist jetzt kein wilder Zeiger. Also mussten wir den Zeiger initialisieren , um ihn nicht zu einem wilden Zeiger zu machen. Und so wird es im Grunde genommen gemacht. Lassen Sie uns diesen Teil kommentieren und sprechen wir über eine andere Art von Zeigern, denen es sich um einen Nullzeiger handelt. Um sicherzustellen , dass wir unseren Endpunkt nicht haben , oder wir können einen Zeiger analog initialisieren, was ihn zu einem Nullzeiger macht. Der einfachste Weg , dies zu tun, besteht darin, einfach diesen enden asischen PTR zu kopieren , der die Zeigerinitialisierung ist. Und dann zählst du das richtige Wissen. Das war's. Dies wird als Nullzeiger bezeichnet. Jetzt können wir diesen Zeiger auch drucken. Hände. Sie können sehen, dass wir jetzt spielen und drucken, aber es druckt nichts, weil es ein Nullzeiger und ein leerer Zeiger ist. Nullzeiger zeigt auf nichts oder auf Speicheradresse , auf die Benutzer nicht zugreifen können. In diesem Fall wird dies also als alter Zeiger bezeichnet. Nennen wir das also Wein. Nennen wir das „Dangling und nennen wir diesen Nullzeiger. Nun ist eine andere Art von Zeigern der ungültige Zeiger. Ein ungültiger Zeiger kann verwendet werden, um auf eine Variable eines beliebigen Datentyps zu zeigen. Es kann wiederverwendet werden, um auf jeden Datentyp zu verweisen, den wir wollen. Und es wird leicht deklariert, indem man einen ungültigen Asterixpunkt schreibt oder PTR gleich null ist. Dies wird als ungültiger Zeiger bezeichnet, da sie sehr allgemeiner Natur sind und auch als generische Zeiger bezeichnet werden. Mit ihrer Flexibilität bringen Void-Zeiger auch einige Einschränkungen mit sich. Void-Zeiger können nicht wie jeder andere Zeiger dereferenziert werden. Wenn Sie nun versuchen, einen ungültigen Zeiger zu dereferenzieren, werden Sie am Ende auf einen Fehler stoßen. Wenn Sie arithmetische Operationen für ungültige Zeiger ausführen möchten, müssen Sie diese Zeiger umwandeln. Typecasting ist im Grunde ein anderes Thema, und wir werden es hier nicht behandeln. Aber Sie müssen es typecast, wenn Sie es verwenden und arithmetische Operationen verwenden, Zeiger aus großen Hughes- und C-Bibliotheksfunktionen wie malloc und Calloc, die dramatisch zuweisen Speicher gab ungültige Zeiger zurück. Es gibt auch die Farbtonquelle und die integrierte Sortierfunktion in C, die eine Funktion als Argument hat, die selbst ungültige Zeiger als Argument annimmt. Nun kommen diese hauptsächlich der ungültige Zeiger, Nullzeiger, der wilde Zeiger und der baumelnde Zeiger normalerweise und Interviewfragen und die MCQ-Fragen. Sie müssen also sicherstellen , dass alle diese Entzündungen in einem Notizbuch aufgeschrieben sind, damit Sie sie bei Bedarf überprüfen können. Und Sie müssen sich nicht alle auswendig lernen, aber Sie müssen genau wissen, was jeder von ihnen tut. Lassen Sie uns jetzt eine kurze Überarbeitung machen. Ein baumelnder Zeiger. Der erste ist ein Zeiger hinweist , ihn oder das zugewiesene Objekt zu löschen. Der wilde Zeiger, der der zweite ist, ist ein beliebiger Punkt oder der vor der Initialisierung verwendet wird. Um es nicht zu einem wilden Zeiger zu machen, können wir das einfach mit dem Nullzeiger tun. Und der letzte in unserer Liste wird der void-Zeiger genannt, der ein Zeiger ist , der verwendet werden kann, um auf eine Variable eines beliebigen Datentyps zu zeigen. Es kann auch verwendet werden, um auf jeden Datentyp zu verweisen , den wir verwenden möchten. Es wird deklariert, indem Sie einfach void vor dem Zeigernamen und dem Asterixzeichen eingeben und ihm den Wert null geben. Das war's für diese Lektion. Danke fürs Zuschauen.