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 |

相关推荐
在路上看风景17 小时前
19. 成员初始化列表和初始化对象
c++
zmzb010317 小时前
C++课后习题训练记录Day98
开发语言·c++
念风零壹17 小时前
C++ 内存避坑指南:如何用移动语义和智能指针解决“深拷贝”与“内存泄漏”
c++
孞㐑¥18 小时前
算法——BFS
开发语言·c++·经验分享·笔记·算法
MZ_ZXD00120 小时前
springboot旅游信息管理系统-计算机毕业设计源码21675
java·c++·vue.js·spring boot·python·django·php
A星空12321 小时前
一、Linux嵌入式的I2C驱动开发
linux·c++·驱动开发·i2c
凡人叶枫21 小时前
C++中智能指针详解(Linux实战版)| 彻底解决内存泄漏,新手也能吃透
java·linux·c语言·开发语言·c++·嵌入式开发
会叫的恐龙21 小时前
C++ 核心知识点汇总(第六日)(字符串)
c++·算法·字符串
小糯米6011 天前
C++顺序表和vector
开发语言·c++·算法
独望漫天星辰1 天前
C++ 多态深度解析:从语法规则到底层实现(附实战验证代码)
开发语言·c++