常量:
//用const修饰的整形常量,其值不可修改
const int a = 10;
指针
int a = 10;
int b = 20;
int * p = &a; //指针指向的地址为变量a的地址,指向的值就是a的值,也就是10
*p = 30; //可修改指向的值
p = &b; //也可以修改指向的地址
常量指针:
int a = 10;
const int * p = &a; //const修饰int*,指针指向的值不可修改
指针常量
int a = 10;
int * const p = &a; //const修饰p,指针直向的地址不可修改
常量指针常量
int a = 10;
const int * const p = &a; //指针指向的地址与值都不可修改
简单的记忆技巧:
我们通常只说整形常量,浮点型常量等等,表示一个整形或浮点型数据为常量,其值不可发生修改。类比指针常量,同样表示指针不可修改,指针是什么,本质是一个地址,所以指针常量表示指针指向的地址不可发生修改,那么剩下的常量指针就是其指向的值不可修改了。熟悉后就别这样记了,自然而然就好。