Frage zu Zeigern



  • Hi, ich habe ein kleines Programm, dass ein Array mit Hilfe eines Zeigers durchstreift, doch eine Zeile leuchtet mir nicht so ganz ein:

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        int iarray[] = {11, 22, 33};
        int* iptr = 0;
        iptr = iarray; //Diese Zeile
    
        for(unsigned int i = 0; i<sizeof(iarray)/sizeof(iarray[0]); i++)
        {
            cout << *iptr << endl;
            iptr++; 
        }
        return 0;
    }
    

    Die Zeile, in der steht:

    iptr = iarray;
    

    verstehe ich nicht ganz, warum schreibt man denn nicht

    iptr = &iarray;
    

    oder

    *iptr = iarray;
    

    Ist das bei Arrays etwa etwas anderes?



  • Wenn du ein Array

    int huhu[5];
    

    definiert dann zeigt
    huhu auf das erste element des Arrays. Es ist also ein Zeiger.
    EDIT: auf weitere elemente greifst du mit

    huhu+sizeof(int)*(Elementindex)
    

    Ich weiss nicht genau ob das SO geht, aber wir werden gleich aufgeklärt.



  • Er kann doch wie in dem Code auf weitere Elemente auch zugreifen in dem er den Zeiger einfach inkrementiert;-)

    Gruß freeG


Anmelden zum Antworten