Built-in array element b[3]
can alternatively be referenced with the pointer expression
*( bPtr + 3 )
The 3
in the preceding expression is the offset to the pointer. When the pointer points to the beginning of a built-in array, the offset indicates which built-in array element should be referenced, and the offset value is identical to the subscript. This notation is referred to as pointer/offset notation. The parentheses are necessary, because the precedence of *
is higher than that of +
. Without the parentheses, the preceding expression would add 3
to a copy of *bPtr
’s value (i.e., 3
would be added to b[0]
, assuming that bPtr
points to the beginning of the built-in array).
Just as the built-in array element can be referenced with a pointer expression, the address
&b[ 3 ]
can be written with the pointer expression
bPtr + 3