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-运算符优先级/
Author
Zivmax
Published at
2023-03-22