Benutzer-Werkzeuge

Webseiten-Werkzeuge


c_pointer

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

c_pointer [2025/11/12 22:16]
admin angelegt
c_pointer [2026/01/07 08:53] (aktuell)
jango
Zeile 1: Zeile 1:
 +Ein Pointer (Zeiger) ist ein Konzept in der [[coding:c|Programmiersprache C]], das es ermöglicht, Speicheradressen zu manipulieren und auf Daten zuzugreifen.
  
 +Ein Pointer ist eine Variable, die die Speicheradresse einer anderen Variable speichert. Sie ermöglichen den indirekten Zugriff auf Daten, indem sie die Adresse der Speicherzelle benutzt, in der die Daten gespeichert sind. Durch die Manipulation von Pointern kann auf Daten zugegriffen und diese geändert werden.
 +
 +<code>
 +T *x;           // x ist Pointer auf T
 +T x(...);       // x ist Funktion, die T zurückgibt
 +T (*x)(...);    // x ist Pointer auf Funktion, die T zurückgibt
 +</code>
 +
 +=====Zuweisung und Dereferenzierung=====
 +
 +Ein Pointer kann einer Variable zugewiesen werden, indem der Adressoperator "&" verwendet wird. Die Dereferenzierung eines Pointers erfolgt durch den indirekten Zugriff auf die Daten, auf die er zeigt, mithilfe des "*" Operators.
 +
 +<code c>
 +int num = 42;
 +int* ptr = &num; // Zeiger auf die Adresse von "num"
 +
 +printf("Wert von num: %d\n", *ptr); // Dereferenzierung des Zeigers
 +
 +*ptr = 24; // Wert an der Adresse ändern worauf der Zeiger verweist
 +
 +printf("Wert von num: %d\n", *ptr);
 +</code>
 +
 +
 +
 +=====Pointer Arithmetik=====
 +
 +In C kann Arithmetik auf Pointern durchgeführt werden, um den Zeiger in der Speicherstruktur zu verschieben. Die Pointer-Arithmetik basiert auf der Größe des zugrunde liegenden Datentyps. Bei einem 32 Bit Integer verschiebt sich der Zeiger z.B um jeweils 32 Bit.
 +
 +<code c>
 +int numbers[] = {1, 2, 3, 4, 5};
 +int* ptr = numbers; // Zeiger auf das erste Element des Arrays
 +
 +printf("Erstes Element: %d\n", *ptr); // Ausgabe: Erstes Element: 1
 +
 +ptr++; // Verschieben des Zeigers zum nächsten Element
 +
 +printf("Zweites Element: %d\n", *ptr); // Ausgabe: Zweites Element: 2
 +</code>
c_pointer.txt · Zuletzt geändert: 2026/01/07 08:53 von jango