运算符优先级
- 作用域解析运算符
(::) - 成员访问运算符
(. ->) - 下标运算符
[] - 函数调用运算符
() - 后置递增递减运算符
(++ --) typeid- 前置递增递减运算符
(++ --) - 位求反
(~) - 逻辑非
(!) - 一元正负
+(正) -(负) - 解引用,取地址
(* &) sizeofnew 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;
}