cpp / beginner
Snippet
Zeiger und Speicheradressen verstehen
Zeiger speichern Speicheradressen statt Werte. Das Sternchen (*) deklariert einen Zeigertyp. Das Kaufmannsund (&) holt die Speicheradresse einer Variable. Dereferenzierung (*ptr) greift auf den Wert an dieser Adresse zu. Ändern von *ptr ändert auch die ursprüngliche Variable, da beide auf dieselbe Speicherstelle zeigen.
snippet.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>int main() {int value = 42;int* ptr = &value;std::cout << "Value: " << value << std::endl;std::cout << "Address: " << ptr << std::endl;std::cout << "Dereferenced: " << *ptr << std::endl;*ptr = 100;std::cout << "New Value: " << value << std::endl;return 0;}
Erklärung
1
int* ptr = &value;
Zeiger-Deklaration: ptr speichert Adresse einer int-Variable
2
std::cout << ptr;
Gibt die Speicheradresse aus, die in ptr gespeichert ist
3
*ptr
Dereferenzierung: greift auf den Wert an der Adresse zu, auf die ptr zeigt
4
*ptr = 100;
Ändert den Wert an der Adresse, auf die ptr zeigt
5
Value ändert sich zu 100
Ändern über Zeiger ändert auch die ursprüngliche Variable