following code in the picture is a example to illustrate pointer to a constant integer. My question:
Since int w is not declare as a constant integer, why it says that the pointer is pointing to a constant integer?
why we cannot try the last line?
If the pointer to a constant should not be assigned to any other value after assigning to the first value, so what makes the difference between a pointer to a constant and a constant pointer then? ( For my understanding, a constant pointer cannot be changed, but a pointer to constant can be changed...

p = &w) assigned a new value to the pointer while the last line (*p = 3) goes and mucks with the object pointed to.