C++运算符优先级

来源:互联网 发布:java file getpath 编辑:程序博客网 时间:2024/06/11 05:26

看到一个不错的表格,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
原创粉丝点击