int a = 10;
int b = 20;
///case1 常量指针///
const int* p1 = &a;// 正确 指针的地址可以改变,但是指针地址的值不能改变
*p1 = 400; // 错误 error: assignment of read-only location '* p1'
const int * p2 = 100;
//编译错误 error: invalid conversion from 'int' to 'const int*' [-fpermissive]
a = 100; //正确
//out : *p1 = 100;
p1 = &b; // 正确 *p1 = 20;
///case2 指针常量///
int *const p2 = &a;//正确,指针的地址不能被改变,但指针地址的值可以改变
*p2 = 30;//正确 cout: *p2 = 30
p2 = &b;//错误 error: assignment of read-only variable 'p2'
a = 100; //正确
//out : *p2 = 100;
///case3 常量指针常量///
const int *const p3 = &a;//正确 指针的地址和指针地址的值都不能改变
//out : *p3 = 10;
*p3 = 555;//error: assignment of read-only location '*(const int*)p3'
p3 = &b;//error: assignment of read-only variable 'p3'
常量指针和指针常量
于 2024-05-07 22:42:27 首次发布