第二个printf后的b为什么还是2呢?
#include "stdio.h"
main()
{
int a=0,b=1,c;
c=(a++)||(b++);
printf("a=%d,b=%d,c=%d\n",a,b,c);
c=(a++)||(b++);
printf("a=%d,b=%d,c=%d\n",a,b,c);
c=(a-=2)||(b++);
printf("a=%d,b=%d,c=%d\n",a,b,c);
c=(++a)||(b++);
printf("a=%d,b=%d,c=%d\n",a,b,c);
}
为什么我运行后,第二个printf后的b为什么还是2呢?不是应该加再1吗?
[解决办法]
短路求值你忘了吗?
[解决办法]
||,是有求值顺序的,假如A||B,那么首先确认A是否是真,若为真,则不再继续求B的值
反之,才继续求B的值
同样有求值顺序的,还有&&,?:运算符