运算符优先级
- 作用域解析运算符
(::)
- 成员访问运算符
(. ->)
- 下标运算符
[]
- 函数调用运算符
()
- 后置递增递减运算符
(++ --)
typeid
- 前置递增递减运算符
(++ --)
- 位求反
(~)
- 逻辑非
(!)
- 一元正负
+(正) -(负)
- 解引用,取地址
(* &)
sizeof
new delete
- 乘、除、取模
* / %
- 加减
+ -
- 左移右移
<< >>
- 关系运算符
== != < <= > >=
- 位与、位异或、位或
& ^ |
- 逻辑与、逻辑或
&& ||
- 条件运算符
(? :)
- 赋值运算符
(=)
- 复合赋值运算符
*= /= %= += -= <<= >>= &= |= ^=
- 抛出异常
throw
- 逗号运算符
,
WARNING
对有符号数使用位运算,符号位如何处理没有明确的规定,所以强烈建议仅将位运算符用于处理无符号类型
内存分配
new
出来的对象存储在堆里面
函数指针
可以用函数指针指向一个函数
int Add(int x, int y) {
return x + y;
}
int main(int argc, char const *argv[])
{
int (*func)(int x, int y);
func = &Add;
cout << (*func)(1, 2) << endl; // 可以对函数指针取值再调用
cout << func(1, 2) << endl; // 也可以直接调用
return 0;
}