Was ist ein Zeiger?
Teil des Abschnitts Logic & Flow der C-Journey von Coddy — Lektion 1 von 63.
Stellen Sie sich den Speicher Ihres Computers wie ein riesiges Apartmentgebäude mit Tausenden von Zimmern vor. Jedes Zimmer hat eine eindeutige Adresse, und jedes Zimmer kann ein Datenelement speichern. Wenn Sie eine Variable in C erstellen, wird sie einem dieser Zimmer zugewiesen.
Ein Pointer ist ein spezieller Variablentyp, der keine regulären Daten wie Zahlen oder Zeichen speichert. Stattdessen speichert er die Adresse des Speicherorts einer anderen Variablen. Stellen Sie es sich so vor, als würden Sie die Wohnungsnummer von jemandem auf ein Stück Papier schreiben – das Papier enthält nicht die Person, aber es sagt Ihnen genau, wo Sie sie finden können.
int age = 25; // Dies erstellt eine Variable 'age' im Speicher
int *ptr; // Dies erstellt einen Pointer, der eine Adresse speichern kannIn diesem Beispiel wird age an einer Speicheradresse gespeichert (sagen wir Raum 1004), und ptr ist eine Zeigervariable, die die Adresse 1004 speichern könnte, um auf die age-Variable zu „zeigen“.
Zeiger sind eines der leistungsfähigsten Merkmale von C, da sie es Ihnen ermöglichen, direkt mit Speicheradressen zu arbeiten, was Ihre Programme effizienter macht und fortgeschrittene Techniken wie die dynamische Speicherzuweisung und komplexe Datenstrukturen ermöglicht.
Spickzettel
Ein Pointer (oder Zeiger) ist eine Variable, die die Speicheradresse einer anderen Variable speichert, anstatt Daten direkt zu speichern.
Um einen Pointer zu deklarieren, verwenden Sie den *-Operator:
int age = 25; // Reguläre Variable
int *ptr; // Pointer-Variable, die eine Adresse speichern kannPointer ermöglichen die direkte Speichermanipulation und erlauben fortgeschrittene Programmiertechniken wie dynamische Speicherallokation und komplexe Datenstrukturen.
Probier es selbst
Diese Lektion enthält keine Programmieraufgabe.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logic & Flow
1Zeiger-Grundlagen
Was ist ein Zeiger?Zeiger deklarierenDer Adressoperator (&)Der Dereferenzierungsoperator (*)NULL-ZeigerZusammenfassung: Zeiger-Grundlagen4Projekt: Einfaches Text-Tool
ProjektübersichtZeichen zählen2Pointer und Arrays
Array-Namen als PointerArray-Elemente - PointerPointer-ArithmetikPointer vergleichenWiederholung: Array-Durchlauf mit Pointern5Zeiger und Funktionen
Wertübergabe (Pass-by-Value)Zeiger an Funktionen übergebenVariablen über Zeiger ändernEin klassisches Beispiel: SwapArrays an Funktionen übergebenZusammenfassung: Zeiger als Funktionsargumente8Structs und Zeiger
Zeiger auf StructsDer Pfeiloperator (->)Structs per Wert übergebenÜbergabe von Struct-ZeigernDynamische Allokation von StructsZusammenfassung: Struct ändern - Ptr11Finale Wiederholungsaufgaben
Wiederholung: Dynamische String-KonkatenationWiederholung: Array von StructsWiederholung: Wortfrequenz-Zähler3Character-Arrays und Strings
Strings als char-ArraysDer Null-TerminatorString-Eingabe mit scanfVerwendung von strlen()Verwendung von strcpy()Verwendung von strcat()Verwendung von strcmp()Zusammenfassung: Grundlegende String-Funktionen