Brauche Erklärung von einem Code(Ausgabe)
-
Hallo Leute,
ich brauche Hilfe bei einem Code, ich soll letztendlich nur sagen, was ausgeben wird, aber ich möchte gerne verstehen wieso.
int temp(int &, int); int temp(int &var_a,int var_b) { int blub=8; var_a=var_a+var_a+var_b; blub=var_a; return blub; } #include <iostream> using namespace std; int main() { int a=1, b=2, x=3,z=0; x=temp(a,b); z=x+a; cout << z << endl; getchar(); return 0; }Ich weiß, dass am Ende "8" ausgeben wird.
Nur kann ich nicht zu 100% nachvollziehen wieso.Es soll "z" ausgeben werden, "z" setzt sich aus "x+a" zusammen.
Nun kommt schon das erste Fragezeichen:x=temp(a,b);Also x wird als temp(a,b) definiert, aber was ist "temp(a,b)?
Und dann verstehe ich den ganzen Teil eitl. nicht:
int blub=8; var_a=var_a+var_a+var_b; blub=var_a; return blub;"Blub" wird als 8 definiert.
"var_a" wird als "var_a+var_a+var_b" definiert???Und dann ist blub=var_a?
Kann bitte jemand Licht ins Dunkle bringen?

(Ja, ich hab nicht so viel Ahnung von C++)
-
Huan23 schrieb:
x=temp(a,b);Also x wird als temp(a,b) definiert, aber was ist "temp(a,b)?
x wird der Rückgabewert der Funktion temp zugewiesen. temp wird mit den Argumenten a und b aufgerufen und gibt einen int-Wert zurück. temp ist am Anfang deines Codes definiert. Lies dir mal was über Funktionen durch.
-
...
-
Ok, ok :).
Ich werde nach diesem Kurs glaube ich eh nicht so viel mit C++ am Hut haben, daher habe ich mir eher weniger Gedanken darum gemacht.
Also ich habe das jetzt so verstanden:
int blub=8;Ist eigtl. unnötig, weil "blub" hinterher "var_a" zugewiesen bekommt.
"var_a" setzt sich aus: 1 + 1 + 2 zusammen, also bekommt den Wert: 4
Also auch "blub=4" und wird zurückgeben.X wird der Wert von "blub" übergeben.
Daher berrechnet sich z aus 4+4 und man erhält 8 als Ausgabe.
Halbwegs richtig verstanden?
-
Ja.