I seem to recall that in many cases it is in fact permitted for C compiler (probably C++ as well) to turn pointer access into value copy so long as the rather flexible semantics are still kept.
The main saving grace is that usually you're only dealing with register copies...
The main saving grace is that usually you're only dealing with register copies...