C++基础-const修饰指针

221 阅读1分钟

const修饰指针有三种情况:

1. const修饰指针 --常量指针

const int * p = &a; 指针的指向可以修改,但是指针指向的值不可以改。 记忆技巧:const 后接*p,表示指针所指向的值不能修改。

2.const修饰常量 --指针常量

int * const p = &a; 指针的指向不可以改,但是指针指向的值可以改。 记忆技巧:const 后接 p,表示指针的指向不能更改,p代表地址。

3.const即修饰指针,又修饰常量

const int * const p = &a; 指针的指向和指针指向的值都不可以修改。

int main()
{
    int a = 10;
    int b = 10;
    
    //contst修饰的是指针,指针指向可以改,指针指向的值不可以更改
    const int * p1 = &a;
    p1 = &b; //正确
    //*p1 = 100; 报错
    
    
    //const修饰的是常量,指针指向不可以改,指针指向的值可以更改
    int * const p2 = &a;
    //p2 = &b; 错误
    *p2 = 100; //正确
    
    
    //const既修饰指针又修饰常量
    const int * const p3 = &a;
    //p3 = &b; 错误
    //*p3 = 100; 错误
    
    return 0;
}