Difference between const. pointer and reference?

There are 3 types of const pointers:

//Data that p points to cannot be changed from p
const char* p = szBuffer;

//p cannot point to something different.  
char* const p = szBuffer;

//Both of the above restrictions apply on p
const char* const p = szBuffer;

Method #2 above is most similar to a reference.

There are key differences between references and all of the 3 types of const pointers above:

  • Const pointers can be NULL.

  • A reference does not have its own address whereas a pointer does.
    The address of a reference is the actual object’s address.

  • A pointer has its own address and it holds as its value the address of the value it points to.

  • See my answer here for much more differences between references and pointers.

Leave a Comment