指针的const限定
1.指向const对象的指针
1 2 3 4 5 6
| const int *p; int a; p = &a; *p = 42; const int *cptrf = &f; int *ptr = &p;
|
- 非
const对象指针的地址可以赋给const对象的指针,const对象指针的地址不能赋给非const对象的指针。
- 不能使用指向
const对象的指针修改指向对象。
- 不能保证指向
const的指针所指对象的值一定不被其他方式该改变(如果指向对象是一个普通变量就可以直接修改)。
2.const指针
- 这表示
ptr是一个常量指针,指针本身的地址不能修改,但可以通过指针修改它所指向的对象的值。1 2 3
| ptr = &b; ptr = pc; ptr++;
|
- 与任何
const量一样,const指针必须在定义时初始化。
3.指向const对象的const指针
1
| const double const* pi = 3;
|
- 这表示
pi是一个常量指针,指向的对象是常量。不能通过pi修改所指向对象的值,并且指针本身的地址也不能修改。
指针的const限定
https://lanxinmob.github.io/2025/01/07/c review/