C++运算符优先级

看到一个不错的表格,MARK一下.

PS:某些恶心的面试题最喜欢搞这些了。

优先级操作符描述例子结合性
1()调节优先级的括号操作符(a + b) / 4;从左到右
[]数组下标访问操作符array[4] = 2;
->通过指向对象的指针访问成员的操作符ptr->age = 34;
.通过对象本身访问成员的操作符obj.age = 34;
::作用域操作符Class::age = 2;
++后置自增操作符for( i = 0; i < 10; i++ ) ...
--后置自减操作符for( i = 10; i > 0; i-- ) ...
2!逻辑取反操作符if( !done ) ...从右到左
~按位取反(按位取补) flags = ~flags;
++前置自增操作符for( i = 0; i < 10; ++i ) ...
--前置自减操作符for( i = 10; i > 0; --i ) ...
-一元取负操作符int i = -1;
+一元取正操作符int i = +1;
*解引用操作符data = *ptr;
&取地址操作符address = &obj;
(type)类型转换操作符int i = (int) floatNum;
sizeof返回对象占用的字节数操作符int size = sizeof(floatNum);
3->*在指针上通过指向成员的指针访问成员的操作符ptr->*var = 24;从左到右
.*在对象上通过指向成员的指针访问成员的操作符obj.*var = 24;
4*乘法操作符int i = 2 * 4;从左到右
/除法操作符float f = 10 / 3;
%取余数操作符int rem = 4 % 3;
5+加法操作符int i = 2 + 3;从左到右
-减法操作符int i = 5 - 1;
6<<按位左移操作符int flags = 33 << 1;从左到右
>>按位右移操作符int flags = 33 >> 1;
7<小于比较操作符if( i < 42 ) ...从左到右
<=小于或等于比较操作符if( i <= 42 ) ...
>大于比较操作符if( i > 42 ) ...
>=大于或等于比较操作符if( i >= 42 ) ...
8==等于比较操作符if( i == 42 ) ...从左到右
!=不等于比较操作符if( i != 42 ) ...
9&按位与操作符flags = flags & 42;从左到右
10^按位异或操作符flags = flags ^ 42;从左到右
11|按位或操作符flags = flags | 42;从左到右
12&&逻辑与操作符if( conditionA && conditionB ) ...从左到右
13||逻辑或操作符if( conditionA || conditionB ) ...从左到右
14? :三元条件操作符int i = (a > b) ? a : b;从右到左
15=赋值操作符int a = b;从右到左
+=复合赋值操作符(加法)a += 3;
-=复合赋值操作符(减法)b -= 4;
*=复合赋值操作符(乘法)a *= 5;
/=复合赋值操作符(除法)a /= 2;
%=复合赋值操作符(取余)a %= 3;
&=复合赋值操作符(按位与)flags &= new_flags;
^=复合赋值操作符(按位异或)flags ^= new_flags;
|=复合赋值操作符(按位或)flags |= new_flags;
<<=复合赋值操作符(按位左移)flags <<= 2;
>>=复合赋值操作符(按位右移)flags >>= 2;
16,逗号操作符for( i = 0, j = 0; i < 10; i++, j++ ) ...从左到右


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值