C++关键字const与constexpr

在本文中,我们聚焦于 C++中至关重要的两个关键字:constconstexpr。深入剖析了它们的特性与区别,const在限制变量修改方面发挥关键作用,提升程序的稳定性和可维护性。而constexpr则在编译时求值的场景中表现出色,为程序的性能优化带来新的可能。通过实际代码示例和详细的解释,帮助读者透彻理解这两个关键字,以便在 C++编程中更加得心应手地运用。 

1. const

1.1. 修饰一般常量

一般常量是指简单类型的常量。这种常量在定义时,修饰符const可以用在类型说明符前,也可以用在类型说明符后。 例如: 

int const x = 2; 
const int y = 2;
const std::string& name = "csdn";

1.2. 修饰常数组

定义或说明一个常数组

int const a[5] = {1, 2, 3, 4, 5}; 
const int a[5] = {1, 2, 3, 4, 5};

1.3. 修饰常指针

const int *A; //const修饰指向的对象,A可变,A指向的对象不可变 
int const *A; //const修饰指向的对象,A可变,A指向的对象不可变 
int *const A; //const修饰指针A, A不可变,A指向的对象可变 
const int *const A;//指针A和A指向的对象都不可变 

1.4. 修饰函数的返回值

const修饰符也可以修饰函数的返回值,是返回值不可被改变 

const int Fun1(); 
const MyClass Fun2(); 

1.5. 修饰类的成员函数

const修饰符也可以修饰类的成员函数

class ClassName { 
public: 
    int Fun() const;
}; 

这样,在调用函数Fun时就不能修改类里面的数据

2. constexpr

修饰的函数只能包括return 语句。

修饰的函数只能引用全局不变常量。

修饰的函数只能调用其他constexpr修饰的函数。

函数不能为void 类型和,并且prefix operation(v++)不允许出现。

参考文献

constexpr用法 - 知乎

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值