基础
函数
构造函数
析构函数
在对象销毁前系统会自动调用, 进行清理工作, 例如收回创建对象时申请的内存空间
字符串
严格来说, C++没有内置的字符串类型 可用于存储字符的类型:
- char: 存储ASCII的字符
- wchar_t: 存储UNICODE的字符
运算
比较
- int最大值: INT_MAX
- int(1字节, 8位): INT8_MAX
- int(2字节,16位): INT16_MAX
- int(4字节,32位): INT32_MAX
- int(8字节,64位): INT64_MAX
- LLONG_MAX
- ULLONG_MAX
优先级
换行区分优先级, 优先级高则优先计算, 同级则按照结合性计算
| 高优先级 | 说明 | 示例 | 结合性 |
|---|---|---|---|
| :: | 作用域运算符 | ||
| ++ | 后缀 | ||
| -- | 后缀 | ||
| (表达式) | 优先级分组 | (1+2)*3 | |
| () | 值构造 | int(32) | |
| () | 函 数调用 | fun(1) | |
| [] | 下标运算 | [3] | |
| . | 结构体 | st.talk() | |
| -> | 指针 | p.talk() | |
| const_at | 专用类型转换 | ||
| dynamic_cast | |||
| reinterpeet_cast | |||
| static_cast | |||
| typeid | typeid(a).name() | ||
| co_await | |||
| ++ | 前缀 | ||
| -- | 前缀 | ||
| + | |||
| - | |||
| ~ | 按位运算 | ||
| ! | |||
| sizeof | 求字节数 | ||
| sizeof | |||
| noexcept | |||
| alignof | |||
| * | 内存操作符 | ||
| & | 取地址 | ||
| new | |||
| new[] | 申请对象数组 | ||
| delete | |||
| delete[] | 释放数组 | ||
| (type) | 强制类型转换 | ||
| .* | 成员解引用 | 从右到左 | |
| ->* | 成员解引用 | ||
| * | 乘法 | ||
| / | 整/小数取整 | ||
| % | 取余 | ||
| + | |||
| - | |||
| >> | 位右移 | ||
| << | 位左移 | ||
| > | |||
| < | |||
| >= | |||
| <= | |||
| == | 等于 | ||
| != | 不等于 | ||
| & | 按位与 | ||
| ^ | 按位异或 | ||
| | | 按位或 | ||
| && | |||
| || | |||
| ?: | |||
| = | 从右到左 | ||
| += | |||
| -= | |||
| *= | |||
| /= | |||
| >>= | |||
| <<= | |||
| &= | |||
| ^= | |||
| |= | |||
| co_yield | 从右到左 | ||
| throw | 异常 | ||
| , | 逗号运算符 |
案例:
int a = 0, b = 0, c = 0;
int d = (a = 3, b += a + 1, b + c -1,, a + b + c);
// 先算a=3
// b = 4
// b+c-1= 3,没有赋值
// a + b + c = 7, 两个逗号表达式, 最后面的生效, 最终结果d=7
cout << d << endl; // 3 4 0 7