1 含义:
使用const关键字定义常量,定义为常量后其值不可被改变
2 内容:
2.1 普通常量理解:
int a = 100;
a = 111; //正确(普通变量的值可以被改变)
const int b = 10; //定义了一个整型常量b,定义完成后其值不可被改变
b = 11; //错误(不可以改变常量的值)
const int c;
c = 22; //错误(由于定义完成之后不可改变值,所以常量需要初始化赋值)
2.2 const 和指针:
- const int * p1;// 指针所指向的数据是只读的,也就是 p1、p2 本身的值可以修改(指向不同的数据),但它们指向的数据不能被修改。
- int const * p2;// 指针所指向的数据是只读的,也就是 p1、p2 本身的值可以修改(指向不同的数据),但它们指向的数据不能被修改。
- int * const p3; // 指针本身的变量地址是只读的,也就是 p1、p2 指向的数据能被修改,本身的值不能修改
- 注:1)和2)效果是相同的,3)的效果与前两个不同(重点)
对于1)和2): int a ,b ; const int *p1=&a; int const *p2=&a; *p1=2//错误(指向的数据不能被修改) *p2=2//错误(指向的数据不能被修改) P1=&b;//正确(本身的值可以修改) P2=&b; //正确(本身的值可以修改) 对于 3): int a, b; int * const p3=&a; *p3=2; //正确(指向的数据可以被修改) p3=&b; //错误(本身的值不能修改)