C++关键字const与constexpr

本文聚焦于C++中至关重要的两个关键字:const与constexpr。深入剖析了它们的特性与区别,帮助读者透彻理解这两个关键字,以便在C++编程中更加得心应手地运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在本文中,我们聚焦于 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用法 - 知乎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值