C++指针常量、常量指针、引用

写在前面的总结:

常量指针(pointer to const):指针指向的对象是常量,可以指向变量和常量,不能通过指针改变指向对象的值,
但是可以从一个对象指向另外一个对象(指针可变)。
指针常量(const pointer):指针是一个常量,引用的定义即为指针常量,指针常量一旦指向一个对象之后就不能再指向别的对象(同引用,指针不能变),但是可以通过指针改变指向对象的值。


const int p;      // p  为常量,初始化后不可更改
const int* p;     // 常量指针,*p 为常量,不能通过*p改变它指向的内容 
int const* p;     // 常量指针,*p 为常量,同上
int* const p;     //指针常量, p  为常量,初始化后不能再指向其它内容,等用与引用,引用即指针常量

    //********常量指针*********//
    const int a = 2;
    int b = 3;
    const int* p = &a;//常量指针,指向常量
    std::cerr << "*p   " << *p << std::endl;
    p = &b;//可以指向另外一个对象,此处为变量
    std::cerr << "*p   " << *p << std::endl;
    //(*p)++;//错误,不能通过*p改变指向对象的值
    b = 6;
    std::cerr << "b   " << b << std::endl;


    //********引用*********//
    int d = 5;
    int& e = d;//引用
    e++;
    std::cerr << "e   " << e << std::endl;
    std::cerr << "d   " << d << std::endl;



     //********指针常量*********//
    int c = 4;
    int* const q = &c;//指针常量
    //q = &d;错误,和引用一样,一旦初始化完成,就不能再改变q指向的对象
    (*q)++;
    std::cerr << "*q   " << *q << std::endl;
    std::cerr << "c   " << c << std::endl;


结果:

在这里插入图片描述
参考资料:
c++ primer
bk
知乎

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值