What is the following C code doing?
int i;
int* p = &i;
0[p] = 42;
I would have though that this would not event compile. But it even executes without a segmentation fault. So I wonder what strange use of the [] operator I have missed.
The C Standard defined the operator [] this way:
Whatever a and b are a[b] is considred as *((a)+(b))
And that's why 0[p] == *(0 + p) == *(p + 0) == p[0] which is the first element of the array.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With