static | const ?



  • int main() {
    
                        int a = 10;
                        static int& p = a;
                        a+=1;
                        cout << a;
                        cout << p;
    

    Meine frage ist nun, wieso wird aus P auch 11, obwohl ich es als static habe.
    mit const geht es auch nicht.



  • Guten Abend,
    Ich will mich jetzt nicht mit einer falschen Anwort blamieren. Ich weiß auch nicht genau was const oder static bedeutet, aber ich glaub es heißt das der Wert der Varibalen sich nicht ändern soll, oder? 🙄 &bedeutet ja dann, dass die Adresse die Die Varibale "beinhält" sich nicht ändern darf, aber der Wert der in der Adresse gespeichert ist schon. das wär mal meine(hoffentlich richtige) Erklärung.
    MFG Julian



  • Na, weil du p als Referenz(&) von a machst und deswegen hat p auch den Wert von a. Und wenn der sich ändert...
    Eigentlich verstehe ich dein Problem nicht so ganz, eine Statische Variable in der main Schleife, wie soll das denn gehen?

    MfG Bongolus



  • lokale variable als static deklariert: variable behält den wert zwischen den funktionsaufrufen bei, wird nach verlassen der funktion also nicht gelöscht

    globale variable als static deklariert: die variable ist nur in dieser datei bekannt, für andere dateien existiert diese variable nicht.

    das static hat nichts damit zu tun daß der wert nicht geändert wird.

    const lässt nicht zu daß die variable gändert wird. p darf dann nur den inhalt von a beziehen, von keiner anderen variablen. das ziel wird ja auch nicht geändert, nur dessen inhalt.


Anmelden zum Antworten