Zitat:
Zitat von affenjunge123
Also wenn ich das richtig verstanden habe, sagt das "(int &x)", dass die 1 von z für das x übernommen wird?
|
Jain.

"(int x)" heißt, dass ein Wert, z.B. eine 1, übernommen wird. "(int &x)" heißt, dass er die Adresse aus dem Arbeitsspeicher, wo sich dieser Wert befindet, übermittelt. Dadurch kann dieser Wert auch durch andere Funktionen geändert werden.
Zitat:
Zitat von affenjunge123
Wieso läuft die Schleife nicht noch einmal mit z = 5 und bricht danach ab? Wird zuerst erhöht und dann geprüft?
|
Genau. Zuerst kommt die Prüfung "z = 1 < 4" -> 1. Durchlauf und danach "z = 3 < 4" -> 2. Durchlauf. Bei "z = 5 < 4" kommt dann false raus und die Schleife bricht ab.
Zitat:
Zitat von affenjunge123
Den letztesn Teil hab ich nicht ganz verstanden:
...
Entfällt er wegen dem "(void)" ?
|
Leider weis ich hier nicht, was genau du nicht verstehst.
"fkt (z);" ruft die Funktion "fkt" auf und übergibt die Speicheradresse von z. Da die Funktion eine Speicheradresse erwartet (int &x), kann dieses z in der Funktion geändert werden.
"cout << z << endl;" gibt das z einfach nur aus.