const 与指针共同使用
在声明指针变量时,实际是申明了两个变量,一个是指针本身,即指针指向的地址,另一个是指针所指向的内容。
因此,在使用 const 限定指针使用权限时,const 放置的位置不同,会有如下几种情况:
位于符号 * 的左侧,指针本身可以修改,指针所指向的内容无法直接修改。指针所指向的内容可以通过修改指针本身,及修改指针所指向的地址来进行修改。


从运行结果我们可以看到,指针本身指向的地址发生了变化;实际上是从 oneInt 的地址,变更为了 otherInt 的地址;因此指针所指的内容也一起发生了变化。
除了修改指针本身,还可以通过修改原始引用变量的值来对指针所指内容的值进行修改,我认为是因为两者的值存储在内存中的同一地址块。


从运行结果可以看到,同一块地址中,指针指向的内容发生了改变,说明可以通过改变原始引用变量的值,来修改指针指向的内容
位于符号 * 的右侧,指针本身无法修改


从第二幅图的运行结果我们可以看到,指针本身指向的地址没有发生变化,指针所指的内容发生了变化;因此当 const 在符号 * 右侧时,限定了指针的地址不能修改,申明了一个只能修改指针指向内容的指针。
位于符号 * 左右两边,表示指针指向的内容和指针本身都是常量,都无法直接修改。但是如果改变了指针原始引用变量的值,指针指向内容的值也会改变,我认为可能是因为两者的值存储在内存中的同一个地址块


从第二幅图的运行结果可以看到,指针本身指向的地址没有发生变化,指针所指的内容发生了变化;通过改变原始应用变量的值,做到了修改指针指向内容值的效果