Variablen und Zeiger
-
Ich bin noch ziemlich neu bei C++ und wie warscheinlich bei jedem anfänger bereitet mir die Zeiger ein paar Probleme. Das grundsystem der Zeiger habe ich verstanden, nur mit der Anwendung hapert es ein wenig und hir jetzt meine frage:
Was ist der Unterscheid zwischen einer Variable die ich global definiere, also vor der main funktion, um sie in anderen funktionen nutzen zu können und zeigern, die ich genauso global definieren muss, damit sie in den anderen Methoden bekannt sind?
Schon mal danke im Voraus
-
KingCold schrieb:
und zeigern, die ich genauso global definieren muss, damit sie in den anderen Methoden bekannt sind?
Wiso musst du Zeiger global definieren? Du kannst sie einfach als Parameter übergeben.
-
Zeiger kann man dann zB benutezn, wenn man ein Objekt 1 hat, das unbedingt en anderes Objekt 2 zum Funktionieren braucht.
VIelleicht hat man dann noch ein 2. Objekt 1 und es bracuth auch Objekt2 zum funktionieren. Aber bei objekte 1 brauchen das selbe Objekt 2. Also speichert man nciht das Objekt 2 selber in Objekt 1, sondern nur einen Zeiger auf das Objekt, damit beide das selbe Objekt benutzen
-
Ein Beispiel wäre noch (bring ich immer an, bei der Frage :D) eine verkettete Liste.
Aber Entyl_Sa hat natürlich recht, global MUSS weder eine Variable sein noch ein Zeiger, um in einer anderen Funktion sichtbar zu sein.
-
Erstmal danke für eure Tipps.
Also wie ich jetzt mit erschrecken feststellen muss ist c++ um einiges Komplexer als Java, denn ob ihr es glaubt oder nicht, ich bekomme es nicht hin einen in der main methode deklarierten Zeiger in eine andere Methode zu übergeben, bei mir kommt immer die Compiler Fehlermeldung "Extra parameter in call to funktionsname (). Bei der Variablenübergabe klappt es ganz einfach, ist ja auch wie in Java. Bitte kann mir mal einer ein einfaches Beispiel für eine zeigerübergabe von der main funktion in eine andere funktion ohne mir gleich an den Halz zu springendanke für euer Verständniss
-
Poste einfach mal deinen Code, damit man sieht, was daran falsch sein könnte.
-
KingCold schrieb:
Also wie ich jetzt mit erschrecken feststellen muss ist c++ um einiges Komplexer als Java...
*g* Endlich spricht es mal jemand aus.
KingCold schrieb:
...denn ob ihr es glaubt oder nicht, ich bekomme es nicht hin einen in der main methode deklarierten Zeiger in eine andere Methode zu übergeben, bei mri kommt immer ie Kompiler Fehlermeldung "Extra parameter in call to funktionsname (). Bei der Variablenübergabe klappt es ganz einfach, ist ja auch wie in Java. Bitte kann mir mal einer ein einfaches Beispiel für eine zeigerübergabe von der main funktion in eine andere funktion ohne mir gleich an den Halz zu springen
void test(int* a) { *a /= 10; } int main() { int x = 100; test(&x); }
An deiner Stelle würde ich aber überlegen, ob eine Referenz nicht angebrachter wäre...
-
Habe meinen Fehler schon gefunden, bin froh das es hier so viele leute gibt die einem Anfänger wie mir helfen, finde ich echt super von euch.
Danke vielmals