关于i++和++i的问题
#include <stdio.h>int main()
{
int a=-1, b=1, k;
if((++a<0) && (b--<=0))
{
printf("%d %d\n",a, b);
}
else
{
printf("%d %d\n",b, a);
}
return 0;
}
为什么最后结果不是输出0 0,而是输出1 0呢????无法理解,求解释。 {:9_241:} 本帖最后由 xieglt 于 2020-9-14 14:42 编辑
int main()
{
int a=-1, b=1, k;
//这个 if 语句先判断 ++a < 0 是否成立? a = -1 ,++a后a = 0 ,所以不成立
//第一个条件判断为不成立后,&& 后面的条件就不再进行判断了,直接跳到else,所以 b--没有执行。 b 仍然是1
if((++a<0) && (b--<=0))
{
printf("%d %d\n",a, b);
}
else
{
printf("%d %d\n",b, a);
}
return 0;
}
页:
[1]