C++关键字
阅读C++primer看到关键字不可做变量名,于是对关键字了解总结一下。
alignas
C++11后的关键字,作用是改变数据对齐属性,不允许小于结构体原有对齐大小,aligns(n) n指的是字节大小,且只能是2的整次幂。
举例:
struct A{
int a;
alignas(2) short b; //不生效
};
struct alignas(8) B{
int a;
short b;
};
struct C{
int a;
alignas(8) short b;
};
int main(){
cout<<sizeof(A)<<" "<<sizeof(B)<<" "<<sizeof(C)<<endl;
return 0;
}
输出: 8 16 16
alignof
用法:slignof(类型)返回类型对齐大小,单位字节
举例
接上面
int main(){
cout<< alignof(A)<<" "<<alignof(B)<<" "<<alignof(C)<<endl;
return 0;
}
输出:4 8 8
asm
C++内部嵌入 汇编指令
auto
C++98,声明变量位自动变量,有static相对
C++11之后,自动类型推导
举例:
int main(){
int a;
auto b = a;
cout << typeid(a).name() << endl;
vector<int> ve{1,2,3};
for(auto x:ve){
cout<<x<<" ";
}
return 0;
}
输出:i
1 2 3
bool
内置数据类型,有两个值 true或flase,用于判断语句
break
循环控制语句,用于跳出当前循环
case
与case连用,用于检测匹配
catch
与try连用,后跟语句块,用来处理try捕捉的异常
char char16_t char32 _t
内置数据类型
class
类,用于创建数据类型,默认类中成员为私有
const
用于修饰变量,修饰的变量必须初始化且不允许修改
constexpr
C++11后的关键字,用于常量表达式
const_cast
强制类型转换,用于去除const限定
continue
循环控制语句,用于跳过当前这次循环
default
用于 switch 语句。当 switch 所有的 case 都不满足时,将进入 default 执行
delete
释放new动态申请的内存空间
do
while的一种方式,保证至少进入一次循环
double
内置数据类型,双精度浮点数
dynamic_cast
强制类型转换,允许在运行时刻进行类型转换,从而使程序能够在一个类层次结构安全地转换类型,用于把基类指针转换成派生类指针,或者把指向基类的左值转换成派生类的引用
else
判断语句,与if连用
enum
枚举数据类型
extern
1 后面跟变量,用于声明变量(不是定义)。
2 extern “C” { 语句} 用来连接C编译器,使代码通过C语句形式编译
false
bool类型值,表示 ”假“
float
内置数据类型,单精度浮点数
for
循环结构,for(; ; ){}
friend
声明友元关系
goto
用与跳转执行
goto xxx;
*** //中间语句不会被执行
xxx:
if
条件判断语句
inline
内联,不通过函数调用的方式执行,还是用类似宏定义方式在调用处展开
int long
内置数据类型,int为整形,long为长整型
namespace
命令空间,用于在逻辑上组织类,是一种比类大的结构,using namespace std;
new
用于新建对象,并动态分配内存
operator
操纵符,用于重载操作符 bool operator < (nodeconst &p1 ){}
private
私有的,用来控制类中成员访问权限
protected
受保护的,用来控制类中成员访问权限
public
共有的,用来控制类中成员访问权限
return
用于在函数中返回值。程序在执行到 return 语句后立即返回,return 后面的语句无法执行到
short
内置数据类型
signed
有符号,用于表示变量有符号,与unsigned相对,默认类型,一般不进行声明
sizeof
返回数据类型大小,单位字节,可以为数据类型或变量
static
静态的,修饰变量或函数,会对变量进行默认初始化,限定作用域为本文件
static_cast
强制类型转换
struct
结构类型,与C语句兼容,默认成员为公有的
switch
多分支语句 与case连用
template
模板,C++ 中泛型机制的实现
this
返回调用者本身的指针
true
bool值 表示”真“
try
与catch连用,后跟语句块,用来处理try捕捉的异常
typedef
类型定义,typedef long long ll
typeid
指出指针或引用指向的对象的实际派生类型。
union
联合
unsigned
无符号,用于声明变量是无符号的
using
表明使用 namespace。
virtual
声明函数为虚函数
void
空的,用于函数返回值