在C++中,指针常量和常量指针是不同的概念。
1. 指针常量(Pointer to constant):指针本身是一个常量,即指针的值不能被修改,但是它所指向的值可以被修改。声明一个指针常量时,要在指针类型前加上const关键字。
示例:
```cpp
int num = 10;
const int* ptr = #
*ptr = 20; // 错误,无法修改ptr所指向的值
ptr = nullptr; // 正确,可以修改ptr的值
```
2. 常量指针(Constant pointer):指针所指向的值是一个常量,即指针指向的值不能被修改,但是指针本身的值可以被修改。声明一个常量指针时,要在指针名字前加上const关键字。
示例:
```cpp
int num = 10;
int* const ptr = #
*ptr = 20; // 正确,可以修改ptr所指向的值
ptr = nullptr; // 错误,无法修改ptr的值
```
总结:
- 指针常量是一个常量指针的值不可修改,所指向的值可以修改;
- 常量指针是一个指针指向的值不可修改,指针本身的值可以修改。