某日二师兄参加XXX科技公司的C++工程师开发岗位第7面:
面试官:C++中,
static
和const
的关键字有哪些用法?二师兄:
satic
关键字主要用在以下三个方面:1.用在全局作用域,修饰的变量或者函数为静态的,限制在本文件内使用。2.方法内修饰修饰静态局部变量,在第一次访问的时候初始化。3.内类修饰成员函数和成员变量,此函数或变量由类持有,而非类的对象持有。
(资料图片)
二师兄:
const
关键字主要也有三个用途:1.修饰函数参数,则在函数内部不可以修改此参数。2.修饰类的成员方法,表面此方法不会更改类对象的任何数据。3.修饰变量,表明变量不可以被修该。面试官:现在两个指针,一个是
const int*
,另一个是int * const
,两者有什么区别?二师兄:这要要看
const
和*
的位置,const
在前称为常量指针,const
在后称为指针常量。常量指针的指针部分可变,指针指向的内容不可变。指针常量则相反,指针指向的内容可变,指针不可变。面试官:嗯,那么你知道顶层
const
和底层const
吗?二师兄:额。。。不知道。。。
面试官:知道
constexpr
关键字的作用吗?二师兄:了解一些。
constexpr
关键字修饰的变量具有编译器求值的功能。修饰的函数是否在编译器求值要取决于传入的参数是不是编译器确定的,这属于元编程的范畴。面试官:嗯,那你知道
consteval
和constinit
这两个关键字的作用吗?二师兄:额。。。了解过一些,忘记了。
面试官:好的,回去等通知吧。
让我们来复盘一下今日二师兄的表现:
const
在前称为常量指针,const
在后称为指针常量。
这里的表述仁者见仁智者见智。但是在大名鼎鼎的《C++ Primer Edition 5》中文版中,const int*
被称为指向常量的指针,而int* const
则被称为常量指针。这种表述更容易理解两种指针的差异。
你知道顶层
const
和底层const
吗?
这里的顶层const
和底层const
概念主要是为了区分const
修饰的是变量本身还是变量指向的内容。
int i = 42;const int ci = 42;//顶层constconst int* pi = &i; //磁层const,因为const修饰的是i所在的地址,不能通过pi去修改i,但是可以修改piint* const pi2 = &i;//顶层const,因为pi2无法修改const int& ri = i;//底层const,不能通过ri修改i
在传递参数时,顶层const
可以被忽略,而底层const
不能被忽略。
你知道
consteval
和constinit
这两个关键字的作用吗?
还记得constexpr
是否在编译时求值要取决于传入的参数吗?如果传入的参数是编译时确定的,constexpr
函数就会在编译时求值,反之则会在运行时求值。
constexpr int add(int a, int b){ return a+b;}constexpr int sum1 = add(1,2);//编译时求值int a = 1, b = 2;int sum2 = add(a,b);//运行时求值
当使用consteval修饰函数和变量时,如果不能在编译时求值,则编译错误。
consteval int add(int a, int b){ return a+b;}constexpr int sum1 = add(1,2);//编译通过,在编译时求值int a = 1, b = 2;int sum2 = add(a,b);//编译失败
constinit
关键字用于声明一个变量为常量初始化变量。使用constinit
可以保证静态变量的初始化顺序和线程安全性,从而避免竞争条件的发生。需要注意的是,constinit
关键字只能用于静态变量的初始化,不能用于动态变量的初始化。
需要注意的是,consteval和constinit关键字是C++20引入的, 小伙伴们可以在编译时加入-std=c++20
尝试使用这两个关键字。
好了,今日份面试到这里就结束了,小伙伴们,对于今天二师兄的面试,能打几分呢?
关注我,带你21天“精通”C++!(狗头)
关键词:
-
C++面试八股文:static和const的关键字有哪些用法?_世界时快讯
某日二师兄参加XXX科技公司的C++工程师开发岗位第7面:>面试官:C++中
-
word的标点符号_word文档标点符号设置_环球热讯
1、word文档中,将半角标点转变成全角标点的步骤为:打开word文档,在
-
富尔特以特定专利参与光大兴陇信托及鑫欣保理融资业务融资金额不超过人民币2600万
挖贝网6月6日,富尔特(872572)近日发布公告,为支持公司业务发展,拓
-
世界看点:寒雨连江夜入吴平明送客楚山孤的意思_寒雨连江夜入吴平明送客楚山孤解释
1、寒雨入夜吴,送别楚。烟雨一夜之间传遍了吴田;早上送你走,你会为
-
环球观热点:环境保护的相关专业有哪些_环境保护相关专业
1、这个好像没有吧。2、环境保护之类的专业有环境工程,环境影响与评价
-
无花果治痔疮怎么用效果好_无花果治痔疮怎么用|全球速递
1、无花果对痔疮的治疗有一定的效果。口服无花果可以缓解便秘,缓解痔
-
每日头条!视网膜脱落手术费用_视网膜脱落手术多少钱
1、视网膜脱离要尽量手术,这样才能保留视功能。2、但手术的收费标准是
-
12月30日是什么星座男生_12月30日是什么星座 世界速读
1、白羊(3 21~4 19)金牛(4 20~5 20)双子(5 21~6 21)巨蟹(6 22~7 22)狮子(
-
小米10s屏幕有120hz吗 环球动态
1、来自的数据简报显示,小米10s的屏幕采用一块FHD+的双曲面左挖孔AMOL
-
绿豆饼的制作方法家常做法_绿豆饼的制作方法
1、原料: 主料:精面粉850克,绿豆1600克。2、绿豆饼 2、辅料:熟
-
【天天热闻】厦门大学徐伟_徐迪 厦门大学教授
当前大家对于徐迪厦门大学教授都是颇为感兴趣的,大家都想要了解一下徐
-
淘宝如何设置限购一件_淘宝限购一件怎么设置 动态焦点
1、具体操作有如下几个步骤:一、下载电脑版“千牛”客户端,登录商家
-
上古卷轴5mod怎么用不了(上古卷轴5mod怎么用)-视焦点讯
1、上古卷轴5mod是广大《上古卷轴5:天际》游戏玩家的热衷追求条件之一
-
环球观察:莴苣的多种吃法?
莴笋是我们平常的家常菜,具有防癌抗癌、通便排毒的功效。下面我们来讲
-
长城汽车: 魏牌以“0焦虑智能电动”的品牌定位,全面向“高端智能新能源”转型|全球观速讯
长城汽车(601633)06月06日在投资者关系平台上答复了投资者关心的问题。
-
今日南宁南湖街道办上班时间_街道办上班时间-世界看点
1、居委会工作时间如下:从星期一到星期五从上午8:30到11:30。2、下午1
-
关注:借他人名义买房过户己方后,出名人因单位政策损失是否需要借名人承担
原告诉称赵某杰、林某兰向本院提出诉讼请求:1.判令二被告赔偿原告658
-
环球微资讯!高温慰问送清凉 情系一线暖人心
近日,持续的高温天气,给坚守生产一线岗位的员工带来了严峻“烤”验,
-
世界简讯:天津轨道交通多措并举为高考学子护航
央广网天津6月6日消息(记者韩雨晨)记者从天津轨道交通集团获悉,为落
-
汉源县马烈乡人民政府志愿服务大队_关于汉源县马烈乡人民政府志愿服务大队简述-环球快报
1、汉源县马烈乡人民政府志愿服务大队是由汉源县民政局登记的志愿团体