In C++ primer, chapter 2, we can find this sentence "it is possible for a pointer to an object and a pointer one past the end of a different object to hold the same address."
What exactally does it mean?
It is trival to understand "a pointer to an object".
Let's see "a pointer one past the end of a object".
Suppose we have an array, int a[]={1,2,3,4,5};
|1|2|3|4|5|?|
^..............^
| ..................|
p ...............q
p is a pointer to the array. q is the pointer past the end of the array.
Suppose we have another object, int b=1, and its address is just next to a[].
|1|2|3|4|5|1|
^ ..............^
| .................|
p ...............q