C++运算符优先级一览表

VC++常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C++软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/125529931C++软件分析工具从入门到精通案例集锦(专栏文章正在更新中...)https://blog.csdn.net/chenlycly/article/details/131405795C/C++基础与进阶(专栏文章,持续更新中...)https://blog.csdn.net/chenlycly/category_11931267.html 当一个复杂的表达式中包含了多个运算符时,要读懂表达式的含义,就需要搞清楚这些运算符的优先级。下面完整地罗列了所有C++运算符的优先级,以供查阅和参考。

|----------------|-------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------|
| 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) sizeof | 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 |

相关推荐
WG_176 分钟前
C++多态
开发语言·c++·面试
Charles Ray2 小时前
C++学习笔记 —— 内存分配 new
c++·笔记·学习
重生之我在20年代敲代码2 小时前
strncpy函数的使用和模拟实现
c语言·开发语言·c++·经验分享·笔记
迷迭所归处7 小时前
C++ —— 关于vector
开发语言·c++·算法
CV工程师小林8 小时前
【算法】BFS 系列之边权为 1 的最短路问题
数据结构·c++·算法·leetcode·宽度优先
white__ice9 小时前
2024.9.19
c++
天玑y9 小时前
算法设计与分析(背包问题
c++·经验分享·笔记·学习·算法·leetcode·蓝桥杯
姜太公钓鲸2339 小时前
c++ static(详解)
开发语言·c++
菜菜想进步9 小时前
内存管理(C++版)
c语言·开发语言·c++
Joker100859 小时前
C++初阶学习——探索STL奥秘——模拟实现list类
c++