博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++运算符优先级
阅读量:4654 次
发布时间:2019-06-09

本文共 2457 字,大约阅读时间需要 8 分钟。

Precedence Operator Description Example Associativity
1 () [] -> . :: ++ -- Grouping operator Array access Member access from a pointer Member access from an object Scoping operator Post-increment Post-decrement (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-- ) ... left to right
2 ! ~ ++ -- - + * & (type) Logical negation Bitwise complement Pre-increment Pre-decrement Unary minus Unary plus Dereference Address of Cast to a given type Return size in bytes 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; int i = (int) floatNum; int size = sizeof(floatNum); right to left
3 ->* .* Member pointer selector Member pointer selector ptr->*var = 24; obj.*var = 24; left to right
4 * / % Multiplication Division Modulus int i = 2 * 4; float f = 10 / 3; int rem = 4 % 3; left to right
5 + - Addition Subtraction int i = 2 + 3; int i = 5 - 1; left to right
6 << >> Bitwise shift left Bitwise shift right int flags = 33 << 1; int flags = 33 >> 1; left to right
7 < <= > >= Comparison less-than Comparison less-than-or-equal-to Comparison greater-than Comparison geater-than-or-equal-to if( i < 42 ) ... if( i <= 42 ) ... if( i > 42 ) ... if( i >= 42 ) ... left to right
8 == != Comparison equal-to Comparison not-equal-to if( i == 42 ) ... if( i != 42 ) ... left to right
9 & Bitwise AND flags = flags & 42; left to right
10 ^ Bitwise exclusive OR flags = flags ^ 42; left to right
11 | Bitwise inclusive (normal) OR flags = flags | 42; left to right
12 && Logical AND if( conditionA && conditionB ) ... left to right
13 || Logical OR if( conditionA || conditionB ) ... left to right
14 ? : Ternary conditional (if-then-else) int i = (a > b) ? a : b; right to left
15 = += -= *= /= %= &= ^= |= <<= >>= Assignment operator Increment and assign Decrement and assign Multiply and assign Divide and assign Modulo and assign Bitwise AND and assign Bitwise exclusive OR and assign Bitwise inclusive (normal) OR and assign Bitwise shift left and assign Bitwise shift right and assign 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; right to left
16 , Sequential evaluation operator for( i = 0, j = 0; i < 10; i++, j++ ) ... left to right

 来源:

转载于:https://www.cnblogs.com/Miami/archive/2013/04/07/3006503.html

你可能感兴趣的文章
PHP流程管理,堪比小小程序
查看>>
1.Mongo聚合
查看>>
数据库列的特征
查看>>
hihoCoder #1582 : Territorial Dispute 凸包
查看>>
打包ideaUI本地项目,以供本地使用
查看>>
C语言中字符串的创建
查看>>
[转载]C#深入分析委托与事件
查看>>
[ log4j ]-日志文件的使用
查看>>
CEF3开发者系列之进程和线程
查看>>
.2-浅析webpack源码之打包后文件
查看>>
SQLServer 2008以上误操作数据库恢复方法——日志尾部备份
查看>>
html如何绑定radio控件和label控件
查看>>
Java中的泛型
查看>>
PHP的类自动加载机制
查看>>
常用排序算法的总结以及编码(Java实现)
查看>>
MySQL
查看>>
HTTP/2 和 Websocket
查看>>
hdu 2050 折线分割平面
查看>>
[翻译svg教程]svg 中的g元素
查看>>
普通类中能不能有函数模板?/有函数模板的类可以是普通类吗
查看>>