Zeiger in C - Verständnisproblem
-
Hey Leute,
ich bin noch absoluter Anfänger wenn es um die C Programmierung geht. Ich bin jetzt beim Thema Zeiger angelangt, dieses scheint ja sehr wichtig zu sein. Ich habe mir auch schon einige Tutorials durchgelesen.
Was ich soweit verstehe ist, dass ein Zeiger auf eine Adresse einer Variablen zeigt.
Ich habe hier ein kleines Beispiel:int zahl = 7;
int *zeiger;
zeiger = &zahl;
printf("Zeiger-Wert: %d\n", *zeiger);Aber wo ist jetzt der Sinn? Im Grunde könnte ich das doch auch so aufbauen:
int zahl = 7;
int zeiger;
zeiger = zahl;
printf("Zeiger-Wert: %d\n", zeiger);Gut jetzt hätte ich eine doppelte Speicherbelastung, aber ist das das einzige was den Zeiger ausmacht?!
LG
-
Das erschließt sich dir, wenn du weitermachst.
Arrays, Verändern von Werten aus einer Funktion heraus, dynamischer Speicher.
Hast du schon scanf benutzt?"Ich hab mich mal ins Auto gesetzt und bin die Garagenauffahrt hoch und runter gefahren. Hat Spaß gemacht, aber wozu das Ganze. Die paar Meter kann ich auch zu Fuß gehen."
-
Mal eine Erweiterung zu deinen Beispielen
printf("Zeiger-Wert: %d\n", *zeiger); // noch deine Zeile zahl = zahl*2; printf("Zeiger-Wert: %d\n", *zeiger);
und
printf("Zeiger-Wert: %d\n", zeiger); // noch deine Zeile zahl = zahl*2; printf("Zeiger-Wert: %d\n", zeiger);
-
Ein Zeiger ist ein Verweis auf Daten.
Wenn du mit Daten hantierst, z.B. sie irgendwohin übergeben willst, wo sich andere Kontexte damit befassen ( auswerten, bearbeiten, ändern ), bietet es sich aus einleuchtenden Gründen an, nicht die ganzen Daten in einen neuen Speicherbereich zu kopieren und diesen dann zu übergeben, sondern nur einen Verweis auf die Daten, d.h. Zeiger. Das ist i.A. kürzerer Code und performanter.
Basiswissen über Zeiger sind in C essentiell, ohne das wirst du scheitern.