Frage zu Vector



  • Moin!

    Mein Buch hat ein Bsp das da lautet:

    int arr[] = {0,10,20,30};
    
    for(int i = 0; i < 4; i++)
    {
        cout << (void*)(arr + i) << endl;
    }
    

    Wenn ich es so ausführe wie es dasteht, werden die Adressen korrekt ausgegeben.
    Ändere ich aber (arr + i) auf (arr[i]), so fängt die Adressierung bei 0 an. Also kann ich es so nicht schreiben. Hab ich da was verpasst, oder kann mir das einer erklären, warum ich das so schreiben muß. Denn im Grunde ist es doch das selbe, oder?

    THX



  • Hallo,

    bei array[i] wird der Zeige bereits dereferenziert und dir wird der Inhalt an
    der Speicheradresse (array + i) ausgegeben. array[i] ist die andere Schreibweise
    fuer *(array + i). Willst du die Adresse haben, musst du &array[i] schreiben.

    mfg
    v R



  • Danke, das mit & davor vergas ich irgendwie...


Anmelden zum Antworten