return()
-
Hallo zusammen,
ich habe hier ein Beispielprogramm:
int quadrat (int x) { int ergebnis = x*x; return(ergebnis); } main() { int z,y; z = 10; y = quadrat(z); printf("%d zum Quadrat = %d", z, y); getch(); }
was macht das return genau darin? Weil wenn ich es entferne, änder sich an der ausgabe ja nichts, wir hatten in der vorlsesung nicht was diese return-anweisung bewirkt.
Gruß juniorcrew
-
int quadrat (int x) { int ergebnis = x*x; return ergebnis; } int main() { int z,y; z = 10; y = quadrat(z); printf("%d zum Quadrat = %d", z, y); getch(); }
'return' gibt den Wert der Berechnung ( sprich das Ergebnis ) von x*x an das Hauptprogramm 'main' bzw. an 'y' zurück.
Weil wenn ich es entferne, änder sich an der ausgabe ja nichts
Kann ich mir nicht vorstellen. Dann wäre nämlich das 'y' in 'main' undefiniert bzw. würde vielleicht der Compiler ein Warning ausgeben.
Am besten du liest dir das durch: Wikibook 'C-Funktionen'
Dann wird dir sofort alles klar
-
juniorcrew schrieb:
was macht das return genau darin? Weil wenn ich es entferne, änder sich an der ausgabe ja nichts
Das ist wenn du so willst Zufall, weil das Ergebnis der letzten Rechenoperation genau an derselben Speicherstelle (bzw. im selben Register) steht, wo der Rückgabewert der Funktion gespeichert wird. Das ist ein typischer Fall von undefiniertem Verhalten: Du hast keine Garantien, es kann alles mögliche passieren, es kann sogar mal funktionieren. Das wird dir in C noch öfter begegnen.
Übrigens ist es unnötig, die Variable ergebnis nochmal in Klammern einzuschließen:
return ergebnis;