Pointer und Arrays in der for-Schleife!



  • Hallo,
    Beide Codes zeigen die selben Ergebnisse an. Gibt es test cases, wo es zu
    Problemen führen kann und es doch wichtig ist, welche Methode man verwendet?

    for(i = 0; i < MAX; i++)
    {
       *(variable +i) = i;
       printf("%d", *(variable + i));
    }
    
    for(i = 0; i < MAX; i++)
    {
       variable[i] = i;
       printf("%d", variable[i]);
    }
    


  • Es ist dasselbe, der optimierende Compiler wird sicher den Gleichen Code ausgeben.



  • Da braucht der Compiler noch nicht einmal optimieren, denn es ist dasselbe.

    Im Prinzip macht der Compiler aus variable[i] intern ein *(variable +i).
    Darum kann man auch [i]variable schreiben, was dann *(i+variable) wird.

    Etwas anderes ist es, wenn du mit Pointern und autoinkrement arbeitest.
    Aber da kann dann der Compiler Optimieren.


  • Mod

    DirkB schrieb:

    Darum kann man auch i[variable] schreiben, was dann *(i+variable) wird.

    FTFY


Anmelden zum Antworten