. &ptr->b " b , ptr". , .
. C ptr[5] *(ptr + 5), , &(ptr[5]) &(*(ptr + 5)). , & * "" (ptr + 5), , .
C makes this a bit cloudy because it distinguishes lvalues from rvalues. That is, an expression related to memory is processed differently on the left side of the expression than on the right. Given a type operator x = y;, the C compiler will load the value from the address yand store it in the address x. This difference is: yimplicitly dereferenced, but xnot.
source
share