面试官: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修饰的是变量本身还是变量指向的内容。
你知道consteval和constinit这两个关键字的作用吗?还记得constexpr是否在编译时求值要取决于传入的参数吗?如果传入的参数是编译时确定的,constexpr函数就会在编译时求值,反之则会在运行时求值。
关注我,带你21天“精通”C++!(狗头)
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |