/*
See following declarations to know the difference between constant pointer 
and a pointer to a constant. int * const ptr —> ptr is constant pointer.
You can change the value at the location pointed by pointer p,
but you can not change p to point to other location.
int const * ptr —> ptr is a pointer to a constant. 
You can change ptr to point other variable. 
But you cannot change the value pointed by ptr.
Therefore above program works well because we have a constant pointer and 
we are not changing ptr to point to any other location. 
We are only incrementing value pointed by ptr.

*/

#if 0

a pointer to a constant

#include <stdio.h>
int main()
{
    int x = 5;
    int const * ptr = &x;
    ++(*ptr);
    printf("%d", x);
   
    return 0;
}

output will be an error because const * ptr
#endif

//a constant to pointer 

#include <stdio.h>
int main()
{
    int x = 5;
    int * const ptr = &x;
    ++(*ptr);
    printf("%d", x);
   
    return 0;
}

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: