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.


Anmelden zum Antworten