太一的博客

一个程序学徒

常量指针与指针常量

常量指针

指针的指向可以改,指针指向的值不可以改。

帮助记忆:const修饰的是int,所以int不可以改,但是指针可以改

1
const int *p;

举例

1
2
3
4
5
int a = 20;
int b = 10;
const int *p = &a;
p = &b; // true
*p = 10; // error

指针常量

指针的指向不可以改,指针指向的值可以改

帮助记忆:const修饰的是指针,所以指针不可以改,但是值可以改

1
int * const p;

举例

1
2
3
4
5
int a = 20;
int b = 10;
int * const p = &a;
*p = 10; // true
p = &b; // error

const 同时修饰指针与变量

指针与变量都不可以改

1
const int * const p;