C++常量指针和指针常量

#include <iostream>
using namespace std;
int main()
{
   
    //常量指针int const *pb,从左往右读,常量 指针 pb ,表示*pb的值不能更改,可以更改Pb的所指向的地址,但地址里面的值不能变
    int num_a = 1;
     //读从左往右读,常量 指针 P_a
    int const *p_a = &num_a; //底层const
    //*p_a = 2;  //错误,指向“常量”的指针不能改变所指的对象
    int b = 1;
    p_a = &b;
    cout << " int b=1; p_a=&b;的值为" << *p_a << endl;
    //错误,不能直接赋值,可以更改p_a所指向的地址
    //*p_a = 1;
    
    //总结:常量指针不允许对指针所指向的值也就是*p_a直接进行更改,但可以改变指针的值即改变P_a的值,p_a=&b,但*p_a的值不能变

    //指针常量  int *const p_b   从左往右读 指针 常量 p_b
    int num_b = 2;
    //指针常量 读从左往右读 指针 常量 p_b
    int *const p_b = &num_b; //顶层const
    //p_b = &num_a;  //错误,指针常量不能改变存储的地址值,但可以通过改变num_b的值来间接改变*p_b的值
    num_b=10;
    cout << " num_b=10;*p_b的值为" << *p_b << endl;
    
    //总结:指针常量不可以改变指针所指向的地址即指针的值,但是可以通过改变地址里面的值来改变指针所指向的值

    system("pause");

    return 0;
}

总结:常量指针不允许对指针所指向的值也就是p_a直接进行更改,但可以改变指针的值即改变P_a的值,p_a=&b,但p_a的值不能变
指针常量不可以改变指针所指向的地址即指针的值,但是可以通过改变地址里面的值来改变指针所指向的值

**注意:const int p与int const p是相同的,没有区别,都是常量指针

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值