++a||++b&&++c
这是逻辑与和逻辑或的问题,很经典的C语言知识点。
1、逻辑与a&&b,如果a为假(即0),则不计算b的值,而得整个逻辑与的值为假(即0);
2、逻辑或a||b,如果a为真(即1),则不计算b的值,而得整个逻辑与的值为真(即1);
3、逻辑与和逻辑或优先级相同,自左自右的计算顺序;
所以本题中的情况是:++a||++b&&++c,因为++a,a先自加为1,已经为真,所以不计算后面的值,也就是说,
a=1;
b=0;
c=0
可以通过一段小程序得到验证。
#include
main()
{
int
a,b,c;
a=b=c=0;
++a||++b&&++c;
printf("a=%d,b=%d,c=%d",a,b,c);
}