#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;
}