为什么`(a--> 0)`和`((a--)> 0)`是一样的?

Gau*_*rav 4 c c++ operators

该计划是

main()
{
int a=1;
if( a-- > 0)
   printf("AAAA");
else
   printf("BBBB");
}
Run Code Online (Sandbox Code Playgroud)

它的输出是AAAA ,如果我使用

main()
{
int a=1;
if( (a--) > 0)
   printf("AAAA");
else
   printf("BBBB");
}
Run Code Online (Sandbox Code Playgroud)

然后为什么输出是AAAA. ()那时候有更多的偏好--.

Ben*_*oit 9

后缀运算符--具有更高的优先级比任何布尔比较运算符.

你到底想要什么?a--始终评估其值a在评估后递减.

  • 如果你想减少使用`--a`,而不是`a - `.`--a`递减a然后计算a的新值.`a - `在递减之前计算'a`的值. (7认同)