const修饰内容 | 结果 |
---|---|
const int a=10; int *p=&a; *p=100; | 可以通过一级指针修改指针指向的地址和指向地址值 |
const int*p=&a; p=&b; *p=100; | const修饰指针类型,可以改变指针指向的地址 |
int* const p=&a; p=&b; *p=100; | const修饰指针变量,可以修改指针指向地址的值 |
const int* const p=&a; p=&b; *p=100; | const修饰指针类型和变量,都不可以修改,可以通过二级指针修改 |
int a = 100;
int b = 200;
//指向常量的指针
//修饰*,指针指向内存区域不能修改,指针指向可以变
const int *p1 = &a; //等价于int const *p1 = &a;
//*p1 = 111; //err
p1 = &b; //ok
//指针常量
//修饰p1,指针指向不能变,指针指向的内存可以修改
int * const p2 = &a;
//p2 = &b; //err