第一步
我们有了一个int x = 5;

这个int x = 5; 是什么意思呢?
解释:
《1》有一个 变量名叫x

《2》这个变量x 占了内存的一块地方

用于存储int类型的数据

《3》现在存在这个变量x里面的int 类型的数据的值是5

第二步
我们有了一个 int *xPtr = &x;

这个int *xPtr = &x; 是什么意思呢?

解释:
《1》 有一个指针名叫xPtr

《2》 这个指针xPtr存储的数据类型是 int * , 也就是说xPtr 存储的数据是一个存储int型的变量占据的那块内存的地址

上面这句话有点绕,我先把主干提出来:xPtr - 存储 - 地址
再把补充成分加上去:某个int 型变量占据的内存地址
《3》现在存在xPtr这个指针里的是变量x的内存地址

,因为&x 的意思是“给出x这个变量占据的内存的地址”
---单贴表情数量达到上限,好不甘心---
const int *xPtr = &x; 这时x 的数值就不能再修改了,比如你想来一句x +=1; 就不行。但是捏,你可以让xPtr去指向别的内存地址,比如 int *xPtr = &x1 是允许滴
int * const xPtr = &x; 这时xPtr存储的数值(也就是xPtr指向的内存地址)就不能改了,比如int *xPtr = &x1是不行滴。但是捏,你可以更改x存储的值,比如x +=1; 是允许滴
如果我讲清楚了,请楼主回答
《1》 int *xPtr = &x;
《2》 const int * const xPtr = &x;
这两句中哪些可以修改,哪些不可以修改