c++中指针常量和常量指针的区别,用代码举例说明
时间: 2024-10-01 11:10:30 浏览: 25
简单总结C++中指针常量与常量指针的区别
5星 · 资源好评率100%
在C++中,指针常量(const pointer)和常量指针(pointer to const)是两个不同的概念:
1. **指针常量**:它是指向某个变量的指针,但是该指针本身是不可修改的,即不能改变它所指向的对象,但可以改变它的NULL状态。例如:
```cpp
int value = 5;
const int* ptrConst = &value; // 创建一个指向常量整数的指针常量
// ptrConst不能再改变它指向的值,如 *ptrConst = 6; 是不允许的
```
这里,`ptrConst`虽然指向的是常量`value`,但我们不能通过它修改`value`。
2. **常量指针**:这种指针指向的是一个常量对象,而不是指针自身是常量。这意味着你可以修改这个指针指向的内容,但不能更改指针本身指向另一个地址。例如:
```cpp
const int value = 5;
int* const ptrToConst = &value; // 创建一个指向常量的指针,但不能改变它的指向
// ptrToConst现在不能改变它所指向的对象,如 *ptrToConst = 6; 是允许的,但ptrToConst = &anotherValue; 是不允许的
```
在这里,尽管`value`是常量,`ptrToConst`仍然能访问并读取`value`,只是不能将它指向其他变量。
总结一下:
- 指针常量限制了对指针本身的修改,但可以操作其指向的对象。
- 常量指针限制了对指针指向内容的修改,但可以保留指针自身的引用不变。
阅读全文