uacs2024

导航

常量指针与指针常量

常量指针与指针常量

const int *p1;  //常量指针,从后往前可以理解为:p1 is a pointer point to const int

常量指针:声明了一个指向整型常量的指针p1,不能通过这个指针p1去修改所指向变量的值。但是可以修改指针p1的指向,即指针p1可以指向别的同类型变量

int* const p2; //指针常量,从后往前可以理解为:p2 is a const pointer point to int

指针常量:声明了一个指针型常量,用于存放整型变量的地址,这个指针一旦初始化后,就不能被重新赋值了。即指针p2 定义的同时一定要初始化,初始化之后就一直指向一个int变量了,无法修改指向。但是可以通过指针p2去修改所指向变量的数值

 

#include <iostream>
using namespace std;

int main()
{
    int a = 5 , b = 10;
    const int* p1 = &a;  //p1指针可以指向别的int变量,但是不能通过p1去修改所指变量的值
    //*p1 = 6;  错误
    a = 6;
    p1 = &b;
    //*p1 = 11;  错误
    cout << a << endl;  //6
    cout << *p1 << endl;  //10

    int c = 15 , d = 20;
    //int* const p2;  错误,没有初始化
    int* const p2 = &c;
    cout << *p2 << endl;  //15
    //p2 = &d;  错误,p2不可以指向别的变量
    *p2 = 25;
    cout << *p2 << endl;  //25
}

结果

6
10
15
25

 

posted on 2024-03-10 22:17  ᶜʸᵃⁿ  阅读(5)  评论(0编辑  收藏  举报