C/C++ 常量指针、指针常量、常量指针常量

int main() {
    int number = 9;
    int number2 = 8;

    // 常量指针(常量的指针)
    const int *numberP1 = &number;
    *numberP1 = 100;     // 报错,不允许修改【常量指针】存放地址所对应的值
    numberP1 = &number2; // 允许重新指向【常量指针】存放的地址

    // 指针常量(指针是常量)
    int *const numberP2 = &number;
    *numberP2 = 100;     // 允许修改【常量指针】存放地址所对应的值
    numberP2 = &number2; // 报错,不允许重新指向【常量指针】存放的地址

    // 常量指针常量(常量的指针是常量)
    const int *const numberP3 = &number;
    *numberP3 = 100;     // 报错,不允许修改【常量指针常量】存放地址所对应的值
    numberP3 = &number2; // 报错,不允许重新指向【常量指针常量】存放的地址

    return 0;
}

常量指针(const pointer):
常量指针是一个指向常量的指针。这意味着指针本身是可以更改的,但是指针指向的值是不能更改的。

指针常量(pointer to const):
指针常量是一个指针,它指向的值是一个常量。这意味着指针指向的值是不能更改的,但是指针本身是可以更改的。

常量指针常量(const pointer to const):
常量指针常量是一个指向常量的指针,指针本身也是一个常量。这意味着指针指向的值是不能更改的,同时指针本身也是不能更改的。


需要注意的是,虽然使用常量指针或指针常量可以使程序更加安全和稳定,但是它们也可能会增加程序的复杂性,因此应该根据实际情况选择合适的指针类型。

猜你喜欢

转载自blog.csdn.net/weixin_47592544/article/details/130076877