【发布时间】:2011-02-03 09:23:16
【问题描述】:
程序如下
main()
{
int a=1;
if( a-- > 0)
printf("AAAA");
else
printf("BBBB");
}
它的输出是AAAA
如果我使用
main()
{
int a=1;
if( (a--) > 0)
printf("AAAA");
else
printf("BBBB");
}
那么为什么输出又是AAAA。
() 比 -- 有更多偏好。
【问题讨论】:
-
将
a--实现为int postInc( int& a ) { int tmp = a; a = a-1; return tmp }可能对您有所帮助,括号也不会重新评估变量。 -
有趣的事实:你也可以说
(a --> 0),解析器不在乎;)