直接上代码展示内联代码片
。
#include <stdio.h>
int main()
{
int i1 =1;
int i2 = 10;
int j = 111;
//1、不能修改*p1的值(p1指向的值),但是可以修改p1的指向以及i1自身的值
const int *p1 = &i1;//这种写法等同于int const *p1 = &i1;
// *p1 = 10;//error
*p1++;//ok(修改地址指向,注意运算优先级,(*p1)++这种形式才是使p1的指向的值自增1)
p1 = &j;//ok
i1++;//ok
//2、不能修改*p2的指向,例如p2++这种操作不被允许,可以修改p3指向的值
int *const p2 = &i2;
(*p2)++;//ok
// *p2++;//error
}
总结:判断指针被const了还是指针指向的值被const了看const在前面还是在后面
const在*前面被const就是指针指向的值,反之被const就是指针