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.
-
DirkB schrieb:
Darum kann man auch i[variable] schreiben, was dann *(i+variable) wird.
FTFY