2-我还记得

由于个人的记忆原因,我需要经常重新学习已经学过的东西,所以有时会写非常简单的东西。

关于const
首先明确,const 是 承诺的,是程序员承诺这个值不会被修改,但是实际上是可以的(比如转型)
被const 修饰的变量在编译时不同的编译器会有不同的实现方式(不同编译器会有不同效果【1】)

关于const+指针
【理解一】

//描述:指向(静态变量)的指针
const int *p;
//描述:指向(静态变量)的指针
const int* p;
//描述:指向(静态变量)的指针
int const *p;
//描述:显示声明指针p是静态的
int* const p;

【理解二】面向错误

cppconstpointer.cpp:3:23: error: invalid conversion from 'int*' to 'int' [-fpermissive]  
     int *const p=&a,c=&a;
                       ^~

在我将代码改为下面这种会正常

int *const p=&a,*const c=&a;

【1】:在const的实现上,实际上是交给编译器来做决定,没有统一的标准,以前的时候可以通过特定编译器的问题,通过指针实现对const变量的修改。现在这种做法会直接报错(invalid conversion from ‘const int*’ to ‘int*’),同时的,转型操作额外提供了一种可以清除 const承诺 的转型。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值