C++(指针常量、常量指针)

在C++中,常量指针和指针常量是两个不同的概念,它们涉及到指针和常量的组合。让我们来详细解释它们的含义:

  1. 常量指针(Constant Pointer):

    • 一个常量指针是指针本身是常量,它指向的内容可以被修改。
    • 一旦指针被初始化指向某个变量,就不能再指向其他变量。
    • 通过指针可以修改所指向的变量的值。
    int x = 10;
    int y = 20;
    
    // 常量指针,指向整数,但指针本身是常量
    const int* ptr = &x;
    
    // 合法,因为ptr指向的内容可以修改
    x = 15;
    
    // 非法,因为ptr本身是常量,不能指向其他变量
    // ptr = &y; // 编译错误
    
    // 合法,因为ptr指向的内容可以修改
    *ptr = 25;
    
  2. 指针常量(Pointer to Constant):

    • 一个指针常量是指针指向的内容是常量,但指针本身可以被修改。
    • 一旦指针被初始化指向某个变量,就可以指向其他变量。
    • 通过指针不能修改所指向的变量的值。
    int x = 10;
    int y = 20;
    
    // 指针常量,指针本身是变量,但指向的内容是常量
    int* const ptr = &x;
    
    // 合法,因为ptr指针本身可以修改
    ptr = &y;
    
    // 合法,因为ptr指向的内容是常量,不能修改
    // *ptr = 25; // 编译错误
    

总结一下:

  • 常量指针:指针本身是常量,指向的内容可以修改。
  • 指针常量:指针本身是变量,指向的内容是常量。

这两个概念在C++中是很有用的,特别是在函数参数、数组等场景中。理解它们有助于正确使用指针并确保数据的安全性。



posted @ 2023-12-24 12:33  做梦当财神  阅读(5)  评论(0编辑  收藏  举报