#include <stdio.h>
int main() {
int m = 10;
int n = 100;
int* p = &m;
*p = 20;
printf("m=%d\n",m);
return 0;
}
程序结果:m=20
const修饰指针
1.const在*左边
const修饰的是*p,*p不可以修改,p可以修改
#include <stdio.h>
int main() {
int m = 10;
int n = 100;
const int* p = &m;
*p = 20;//无法编译通过 Error List :
//1.expression must be a modifiable lvalue
//2.l - value specifies const object
p = &n;
printf("m=%d\n",m);
return 0;
}
2.const在*右边
const修饰的是p,p不可以修改,*p可以修改
#include <stdio.h>
int main() {
int m = 10;
int n = 100;
int* const p = &m;
*p = 20;
p = &n;//无法编译通过 Error List :
//1.expression must be a modifiable lvalue
//2.l - value specifies const object
printf("m=%d\n",m);
return 0;
}
3.const*左右两边都存在,p和*p都不可以修改
#include <stdio.h>
int main() {
int m = 10;
int n = 100;
const int* const p = &m;
*p = 20;//无法编译通过 Error List :
//1.expression must be a modifiable lvalue
//2.l - value specifies const object
p = &n;//无法编译通过 Error List :
//1.expression must be a modifiable lvalue
//2.l - value specifies const object
printf("m=%d\n",m);
return 0;
}
本文详细介绍了C++中const关键字修饰指针的三种情况:const在*左边,修饰的是指针变量;const在*右边,修饰的是指针所指的对象;const同时在*左右,两者都不能修改。通过示例代码展示了编译错误,帮助理解const在指针操作中的作用。
815

被折叠的 条评论
为什么被折叠?



