Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
|
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: | ||
| + | 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. | ||
| + | |||
| + | < | ||
| + | T *x; // x ist Pointer auf T | ||
| + | T x(...); | ||
| + | T (*x)(...); | ||
| + | </ | ||
| + | |||
| + | =====Zuweisung und Dereferenzierung===== | ||
| + | |||
| + | Ein Pointer kann einer Variable zugewiesen werden, indem der Adressoperator "&" | ||
| + | |||
| + | <code c> | ||
| + | int num = 42; | ||
| + | int* ptr = # // Zeiger auf die Adresse von " | ||
| + | |||
| + | printf(" | ||
| + | |||
| + | *ptr = 24; // Wert an der Adresse ändern worauf der Zeiger verweist | ||
| + | |||
| + | printf(" | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | =====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(" | ||
| + | |||
| + | ptr++; // Verschieben des Zeigers zum nächsten Element | ||
| + | |||
| + | printf(" | ||
| + | </ | ||