C++关键字const与constexpr

news/2024/7/3 0:30:01

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用法 - 知乎


http://lihuaxi.xjx100.cn/news/246280.html

相关文章

RNN,LSTM,GRU简单图解:

一篇经典的讲解RNN的,大部分网络图都来源于此:http://colah.github.io/posts/2015-08-Understanding-LSTMs/ 每一层每一时刻的输入输出:https://www.cnblogs.com/lovychen/p/9368390.html 带有权重标识的图:

javascript里面RegExp的exec函数的总结

2019独角兽企业重金招聘Python工程师标准>>> 在我们的前端里面,经常会用到正则表达式进行检索字符串,刚好javascript里面提供RegExp来支持正则表达式,而RegExp对象的主要方法是exec()。 语法 RegExpObject.exec(string) 参数 描述…

详解zabbix中文版安装部署

一、zabbix简介(摘自百度百科)zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员快速定位/解决存在…

C++关键字register

这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率。注意是尽可能,不是绝对。你想想,一个CPU 的寄存器也就那么几个或几十个,你要是定义了很多很多register 变量,…

P4269 [USACO18FEB]Snow Boots G

思维题。 以地板为序构造链表&#xff0c;再排序&#xff0c;然后删除走不过去的地面。 删除的时候顺便维护最大的跨度&#xff0c;以此判断可行性。 总的来说利用了答案的单调性。 #include <cstdio> #include <cstring> #include <iostream> #include <…

怎样将jpg转换成pdf软件

为什么80%的码农都做不了架构师&#xff1f;>>> 怎样将jpg转换成pdf软件 序言&#xff1a; 企业或个人通常会遇到设备终端软件的兼容性和支持性问题&#xff0c;比如&#xff0c;JPG转PDF文本&#xff0c;这给等于给用户设置了一个门槛&#xff0c;遇到需要将JPG转换…

安装Macports遇到的问题和PATH设置

2019独角兽企业重金招聘Python工程师标准>>> 安装Macports后&#xff0c;再输入port&#xff0c;发现无法使用。 然后下源码来编译&#xff0c;发现要设置PATH。咋设置呢&#xff0c;网上找的攻略看下面。 缺省的Macports安装在了/opt/local/bin下头。 执行&#xf…

C++关键字const和mutable

1. const const是constant的缩写&#xff0c;意为常用&#xff0c;它有以下几个作用 1.1. 修饰变量 1.1.1. const修饰普通变量 const int a 10; const修饰了int&#xff0c;表示这段代码定义的变量&#xff0c;最后取的是int型且值为10&#xff0c;不可被后面的代码修改。…