Categories
Tags
Algorithm ASCII Blog Building Blogging C Lang C++ Calculas CMake Coding Combination Theory Computer Architecture CS CS100 CS101 CS110 CS50X Customization Data Science DATA100 Demo Discrerte Math Docker Economics Example Fonts Fuwari HEXO Jottings LaTeX Linux LLM Translation Markdown Marp Methodology Neovim Number Theory Proxy Reading Revised Translation Slides STU Table Unfinished Video WSL
180 words
1 minutes
C / C++ 运算符优先级
!! 注意 !! : 仅有个别运算符规定了 求值顺序 ,目前已知的有:&&
和 ||
(短路求值);?:
。
- 例如:
f() - g() + h()
中的f()
,g()
和h()
的调用顺序是不确定的。 - 典型错误:
printf("%d, %d", ++i, i);
(这个语句的结果是不确定的)
类别 | 运算符 | 结合性 |
---|---|---|
后缀 | () [] . -> ++ -- | 从左到右 |
一元 | + - ! ~ ++ -- (type)* & sizeof() | 从右到左 |
乘除 | * / % | 从左到右 |
加减 | + - | 从左到右 |
移位 | << >> | 从左到右 |
关系 | < <= > >= | 从左到右 |
相等 | == != | 从左到右 |
位与AND | & | 从左到右 |
位异或XOR | ^ | 从左到右 |
位或OR | | | 从左到右 |
逻辑与AND | && | 从左到右 |
逻辑或OR | || | 从左到右 |
条件 | ?: | 从右到左 |
赋值 | = += -= *= /= %= >>= <<= &= ^= |= | 从右到左 |
逗号 | , | 从左到右 |
C / C++ 运算符优先级
https://zivmax.top/posts/refs/c-cpp-运算符优先级/