The C standard defines the
[] operator as follows:a[b] == *(a + b)
Therefore
a[5] will evaluate to:*(a + 5)
and
5[a] will evaluate to:*(5 + a)
and from elementary school math we know those are equal.
This is the direct artifact of arrays behaving as pointers, "
a" is a memory address. "a[5]" is the value that's 5 elements further from "a". The address of this element is "a + 5". This is equal to offset "a" from "5" elements at the beginning of the address space (5 + a).
0 comments:
Post a Comment
Don't Forget to comment