const关键字
#includ
e
#include
using namespace std;
int main(void) {
const int x = 3; // 添加const 关键字,表示不可变,类似于java的final
// x = 5; // 编译错误,提示x为readonly
int const * p = &x;
// *p = 5; // 编译错误,提示x为readonly
int y = 5;
int * const p = &x;
// p = &y; // 编译错误, 'p' has a previous declaration as `const int*p'
system("pause");
return 0;
}
去掉数据类型:
常量指针
const 修饰* 表示 指针指向的内存不能被指针解引用修改
int a = 10;
int b = 30;
const int * p = &a;
// *p = 20; // error
p = &b;
指针常量
const 修饰变量名 表示指针的指向不能变,指针指向的内存可以通过指针解引用修改
int a = 10;
int b = 30;
int * const p = &a;
*p = 20;
// p = &b; // error
常指针常量
指针指向的对象不能改变,同时指针指向的内存也不可以通过指针解引用修改
int a = 10;
int b = 30;
const int * const p = &a;
// *p = 20; error
// p = &b; // error