基本算法 C++

wiki中找到 C/C++的运算优先级列在如下:

优先级运算符叙述示例重载性结合性
1::作用域解析(C++专有)Class::age = 2;由左至右
2++后缀递增i++ 
--后缀递减i-- 
{}组合{i++;a*=i;} 
()函数调用或变量初始化c_tor(int x, int y) : _x(x), _y(y * 10) {} 
[]数组访问array[4] = 2; 
.以对象方式访问成员obj.age = 34;
->以指针方式访问成员ptr->age = 34; 
dynamic_cast运行时检查类型转换(C++专有)Y& y = dynamic_cast<Y&>(x);
static_cast未经检查的类型转换(C++专有)Y& y = static_cast<Y&>(x);
reinterpret_cast重定义类型转换(C++专有)int const* p = reinterpret_cast<int const*>(0x1234);
const_cast更改非常量属性(C++专有)int* q = const_cast<int*>(p);
typeid获取类型信息(C++专有)std::type_info const& t = typeid(x);
3++前缀递增++i 由右至左
--前缀递减--i 
+一元正号int i = +1; 
-一元负号int i = -1; 
!
not
逻辑非
!的备用拼写
if (!done) … 
~
compl
按位取反
~的备用拼写
flag1 = ~flag2; 
(type)强制类型转换int i = (int)floatNum; 
*取指针指向的值int data = *intPtr; 
&取变量的地址int *intPtr = &data; 
sizeof某某的大小size_t s = sizeof(int);
new动态内存分配(C++专有)long* pVar = new long; 
new[]动态数组内存分配(C++专有)long* array = new long[20]; 
delete动态内存释放(C++专有)delete pVar; 
delete[]动态数组内存释放(C++专有)delete [] array; 
4.*成员对象选择(C++专有)obj.*var = 24;由左至右
->*成员指针选择(C++专有)ptr->*var = 24; 
5*乘法int i = 2 * 4; 
/除法float f = 10.0 / 3.0; 
%模数(取余)int rem = 4 % 3; 
6+加法int i = 2 + 3; 
-减法int i = 5 - 1; 
7<<比特左移int flags = 33 << 1; 
>>比特右移int flags = 33 >> 1; 
8<小于关系if (i < 42) … 
<=小于等于关系if (i <= 42) ... 
>大于关系if (i > 42) … 
>=大于等于关系if (i >= 42) ... 
9==
eq
等于关系
==的备用拼写
if (i == 42) ... 
!=
not_eq
不等于关系
!=的备用拼写
if (i != 42) … 
10&
bitand
比特 AND
&的备用拼写
flag1 = flag2 & 42; 
11^
xor
比特 XOR(独占or)
^的备用拼写
flag1 = flag2 ^ 42; 
12|
bitor
比特 OR(包含or)
|的备用拼写
flag1 = flag2 | 42; 
13&&
and
逻辑 AND
&&的备用拼写
if (conditionA && conditionB) … 
14||
or
逻辑 OR
||的备用拼写
if (conditionA || conditionB) ... 
15c?t:f三元条件运算int i = a > b ? a : b;由右至左
16=直接赋值int a = b; 
+=以和赋值a += 3; 
-=以差赋值b -= 4; 
*=以乘赋值a *= 5; 
/=以除赋值a /= 2; 
%=以取余数赋值a %= 3; 
<<=以比特左移赋值flags <<= 2; 
>>=以比特右移赋值flags >>= 2; 
&=
and_eq
以比特AND赋值
&=的备用拼写
flags &= new_flags; 
^=
xor_eq
以比特XOR赋值
^=的备用拼写
flags ^= new_flags; 
|=
or_eq
以比特OR赋值
|=的备用拼写
flags |= new_flags; 
17throw抛出异常throw EClass(“Message”);
18,逗号运算符for (i = 0, j = 0; i < 10; i++, j++) … 由左至右
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值