基础
函数
构造函数
析构函数
在对象销毁前系统会自动调用, 进行清理工作, 例如收回创建对象时申请的内存空间
字符串
严格来说, 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
入口函数
为什么是int
类型?
告诉操作系统程序的退出状态, 即程序的执行结果,0表示为正常退出, 1为异常