⟩ Can you please explain the difference between Pointer to constant and pointer constant?
Pointer to constant points to a value that does not change and is declared as:
const type * name
type is data type
name is name of the pointer
e.g: const char *p;
pointer to constant can not be used to change the value being pointed to. Therefore:
char ch = ‘A’;
const char *p = &ch;
*p = ‘B’;
is not allowed. The program will throw an error.
Pointer Constant (or constant pointer) is a pointer which you don’t want to be pointed to a different value. That is, the location stored in the pointer can not change. We can not change where the pointer points. It is declared as:
type * const name
type is data type
name is name of the pointer
eg: char * const p
Since the location to which a const pointer points to can not be changed, the following code:
char ch1 = ‘A’;
char ch2 = ‘B’;
char * const p = &ch1;
p = &ch2;
will throw an error since address stored in p can not be changed.