1.常量分为普通常量,符号常量和常变量。
2.普通常量是没有名字的不变量,常变量是有名字的不变量,有名字就可以被引用。
3.常变量与变量:共同点是都 有名字,有类型,有存储单元,而变量的值是可改变的,常变量的值不可改变。
4. int num = 230;
const int cnum = 120;
const int* p = &cnum;
这种情况,通过 *p(解引用)修改cnum的值非法,但可以修改p的指向(p = &num 合法),此时通过 *p 修改num的值也非法,但可以通过num修改其值(num = 10 合法)。也不能通过cnum修改其值(cnum = 20 非法)。
5. int num = 230;
const int cnum = 120;
int * const p = #
这种情况,通过 *p 修改num的值合法,但不可以改变它的指向(p = &cnum 非法)
6. int num = 230;
const int cnum = 120;
int * const p = &cnum;
这种情况,通过 *p 修改cnum的值非法(因为cnum被const修饰,不能被改变),也不可以改变它的指向。
一句话:被const修饰的不能改变其值。对于指针变量来说,要看const修饰的是它本身,还是它所指向的数据。在4中,是第二种情况,在5,6中,是第一种情况。