Was macht der folgende C-Code?
Ich hätte allerdings, dass dies kein Ereignis kompilieren würde. Aber es wird sogar ohne Segmentierungsfehler ausgeführt. Also frage ich mich, welche seltsame Verwendung des [] -Operators ich verpasst habe.
[]
Der C-Standard definierte den Operator [] auf diese Weise:
Was a und b sind a[b] wird als *((a)+(b))
a
b
a[b]
*((a)+(b))
Und deshalb ist 0[p] == *(0 + p) == *(p + 0) == p[0] das erste Element des Arrays.
0[p] == *(0 + p) == *(p + 0) == p[0]
0[p] entspricht p[0] . Beide werden als
0[p]
p[0]
Von oben sind beide Aussagen gleich.
in 0[p] = 42;
0[p] = 42;
entspricht p[0]
+ Operation ist kommutativ und wir haben:
+
Tags und Links c