常量指针

常量指针是指:所指向的内存空间是只读的,即指向的数据无法被修改,但指针本身的指向是可以修改的。

声明方式:

// 声明方式一
const int* p;
// 声明方式二
int const* p;

指针常量

指针常量是指:指针本身就是一个常量,其指向不可修改

声明方式:

int* const p;

实例

#include <iostream>

int main() {
    using namespace std;
    
    // 声明变量
    int a = 2;
    int b = 3;

    // 声明常量指针(指针指向的内存空间是只读的)
    const int* p1 = &a;
    p1 = &b;    // 指针本身的指向是可以修改的
    *p1 = 3;    // (报错) 修改常量指针指向的内存空间所存储的数据时会报错

    // 声明指针常量(指针本身就是一个常量)
    int* const p2 = &a;
    p2 = &b;    // (报错) 指针常量的指向不能被修改,即指针本身就是一个常量
    *p2 = 3;    // 指针常量指向的内存空间是可读写的,即指针常量指向的数据可以被修改
    
    return 0;
}