1.标识常量
const 类型 常量标识符=常量表达式
如:const int a=100;
a就相当于常数值100一样,即用标识符标识常数
2.常量指针
写法2种: const 类型 *指针 类型 const *指针
如:int a=1;
const int max=2;
int *p;
const int *p1;
const int * p2;
P1=&a;
P2=&max;
常量指针,是指该指针对应的对象的值可以读取,但是不能修改
*p1=10; (×)
*p2=20; (×)
a=*p1+*p2; (✔)
3.指针常量
类型 * const 指针
指针变量的值只能在定义的时候初始化,定义后不能被修改;这里限定的是变量所指向的变量(地址)不能修改,但是地址里面的内容(值)可以任意修改
如:int a=1,b=2;
int * const p1=&a;
p1=&b; (×) //不能修改指针常量
*p1=b; (✔) //可以修改值
*******************
const int c=3;
Int * const p2=&c; (×) //指针常量只是不能修改地址,但是对应的值可以变化,这里显然缩小了指针常量的权限
4.指向常量的指针常量
其实就是2、3的结合,其实就是指针本身和对应对象的值不能修改
2种类型:const 类型 * const 指针 类型 const * const 指针
如:const int * const p=&a;
具体如何理解参考2和3
总结:常量指针是值不能修改
指针常量是地址不能修改
指向常量的指针常量是值和地址都不能修改