`计算机知识` `C++` constexpr常量

constexpr

constexpr的作用, 或者说, 常量的作用, 就是 效率

因为, 他 从 (运行期) 搬到了 (编译期), 不占 运行期了, 自然效率高了


与const的区别

首先, 讲一下const的英文意思: 常量, 不变

const expression的意思, 其实他和const没有太多的关系;

const的唯一意思是: 只读, 其实, 他在c++里的作用, 和他本身英文意思, 并不匹配;

所谓 只读:
比如, 有一个Foo foo对象, 外界用户得到了一个 (const的引用/指针),
那么, 此时这个const的作用是: 外界用户, 只可以 这个对象, 并不能 修改这个对象;

但是, 我们知道, 这个foo对象, 他是可以(被修改的); 比如, 他自己可以修改自己, 或者, 一个非const的指针, 也可以修改

所以, const的意思, 不是说: 这个(内存)不可以修改, 而是: 这个内存, 对于 (外界用户) 是 只读的


constexpr, 是真正的 (常量), 他这个内存, 就是不可以修改的; 他是Literal类型, 是在编译期

const 和 constexpr的区别, 类似于: const QStringQStringLiteral的区别!!!

你理解QStringLiteral, 就理解 constexpr了;


比如, 有一个函数func, 他会被调用很多次, 他里面有一个 值double, 是一个常量

我们的想法是:

  • const double Pi = 3.14; 但这样不好的, 因为, 每次调用这个函数, 都会申请 和 释放这个对象
  • static const double Pi =
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值