焦点信息:C++面试八股文:static和const的关键字有哪些用法?
某日二师兄参加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++!(狗头)
关键词:
责任编辑:meirong
-
焦点信息:C++面试八股文:static和const的关键字有哪些用法?
-
【播资讯】凉拌旺笋的做法?
-
环球热点评!艾滋病患者舌头是什么样的_艾滋病人的舌头有什么症状
-
每日视讯:饥荒高脚鸟多久刷新一次?
-
上海柒零餐饮有限公司_柒外卖
-
固定资产盘盈盘亏计入固定资产清理吗_固定资产盘盈盘亏计入 全球热闻
-
路边摊炸洋芋的做法_摆地摊炸洋芋的做法 地摊炸洋芋怎么做_环球微速讯
-
小学家委会工作总结2023_小学家委会工作总结_全球消息
-
“儿子,你真棒!” 张陆母亲想给“天宫”出差归来的儿子一个大拥抱-全球速看
-
世界百事通!侯友宜出席五星县市长赠奖 不回应媒体提问
-
男子驾车意外坠河 民警掰车门救人_全球短讯
-
西安机关事务区域一体化服务国家级标准化试点启动
-
存款利率即将再降?银行-天天视讯
-
浙江益天达网上订购_怎么在网上订购火车票
-
忍者神龟2破影而出国语版_忍者神龟2破影而出
-
今日热闻!华洋赛车6月13日北交所首发上会 拟募资4.8亿元
-
全球快看:前5月新疆霍尔果斯口岸出入境人员超17万人次
-
每日视点!公路造价师招聘_公路造价师
-
全球报道:人穷被看不起的句子(人穷被看不起的句子图片)
-
每日看点!普泰环保财务负责人吴浪浪辞职2022年公司净利789.07万
-
苹果在MR世界画的「大饼」,资本市场并不买账 每日热点
-
六月的淮安,香香香香!_当前独家
-
穿越神墓小说_穿越之神墓
-
世界讯息:价格战冲击波影响延续,二手车市场迈入直播赛道
-
奇瑞开始以拉达格兰塔一半的价格销售电动汽车
-
大学退学可以退学费吗(大专退学退学费吗)-环球播报
-
指纹的类型有哪些图片_指纹的类型 全球今日报
-
快看点丨守护娃娃健康 北京市通州区市场监管局开展特殊食品专项执法检查
-
华鲁恒升:业绩说明会定于6月6日举行_世界观热点
-
金价恢复上涨!2023年6月6日各大金店黄金价格多少钱一克?|焦点要闻
-
敏芯股份(688286.SH)董秘董铭彦与财务总监钱祺凤拟合计减持不超5700股
-
首经贸密云分校与首经贸什么关系(首经贸密云分校官网)
-
天天资讯:2023年国内化妆品零售行业发展分析 化妆品行业产业链分析
-
哈卡的后代多少级(哈卡的后代具体在哪说的详细点)
-
天天快看点丨医保视同缴费年限从哪一年算起?医保如何一次性补缴的?