Unterschied zwischen *(ptr) = var_2; und ptr = &var_2;



  • Hallo,

    wo ist der Unterschied zwischen:

    *(ptr) = var_2;
    und
    ptr = &var_2;

    int var = 3;
    int var_2 = 1;
    
    int *ptr = &var;
    
    *(ptr) = var_2;
    ptr = &var_2;
    
    cout<< * ptr;
    


  • int var = 3;
    int var_2 = 1;
    
    int *ptr = &var; // ptr zeigt auf var
    
    *(ptr) = var_2;  // der Speicher auf den prt zeigt (var) wird auf var_2 (1) gesetzt
    ptr = &var_2;    // ptr zeight nun auf var_2 . änderst du nun var und gibst ptr aus bleibt der unverändert
    
    cout<< * ptr;
    


  • Nach

    int var = 3;
    int var_2 = 1;
    int *ptr = &var;
    

    gilt:

    Variablen:        var     var_2     ptr
    Adressen:        &var    &var_2    &ptr
    Speicherinhalt:    3        1      &var
    

    Nach

    *(ptr) = var_2;
    

    gilt:

    Variablen:        var     var_2     ptr
    Adressen:        &var    &var_2    &ptr
    Speicherinhalt:    1 <----- 1      &var
    

    ptr enthält den Wert &var. *ptr bezieht sich damit auf die Speicherstelle, in der var gespeichert ist. Der Wert der rechten Seite ist das, was in var_2 drin steht, also 1. Wir schreiben also eine 1 in var über den Zeiger ptr rein.

    Nach

    ptr = &var_2;
    cout<< * ptr;
    

    gilt:

    Variablen:        var     var_2     ptr
    Adressen:        &var    &var_2    &ptr
    Speicherinhalt:    1        1     &var_2
    

    und der Wert von var_2 wird ausgegeben, da sich *ptr auf die Speicherstelle von var_2 bezieht.



  • Die Erklärung von padreigh habe ich verstanden. ^^
    Die von dir krümelkacker nicht. ^^

    Aber egal ich weiss ja jetzt wie es funktioniert.



  • zeiger schrieb:

    Die Erklärung von padreigh habe ich verstanden. ^^
    Die von dir krümelkacker nicht. ^^

    Jede Variable sitzt irgendwo im Arbeitspeicher. Die einzelnen Bytes im Arbeitsspeicher können adressiert werden. Jede Variable x hat also eine Adresse &x, wobei & der Adress-Operator ist. Und jede Variable speichert einen Wert. Ganzzahl-Variablen speichern Ganzzahlen, Fließkomma-Variablen speichern Annäherungen von Realzahlen und Zeiger-Variablen speichern Adressen.

    Die Tabellen sollten zeigen, wann welche Variable was speichert.


Anmelden zum Antworten