The C standard defines the
Therefore
and
This is the direct artifact of arrays behaving as pointers, "
[]
operator as follows:a[b] == *(a + b)
Therefore
a[5]
will evaluate to: *(a + 5)
and
5[a]
will evaluate to:*(5 + a)
and we know those are equal. (Addition is commutative.)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
).
No comments:
Post a Comment