abc均为整型变量,则执行以下语句a=b=c;a++&&++b||c++后abc分别为多少

如题所述

要看c的初值为多少,设c=1则,
a=2;
b=2;
c=1; //因为前面的结果为“真”,所以,c++没有运算,这是短路规则造成的,即A||B,如果A为真,就不会执行B

表达式:a++ 为1 ++b为2

设c=0,则
a=1
b=1
c=1 //因为此时,没有不适合短路规则, a++为0,++b为1,所以前面的&&为0,因此要计算c++,所以c=1
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-22
a=b=c; /* c的值赋给b,此时b==c; b的值又赋给a,此时 a == b ==c ;*/
a++&&++b||c++; /* a++的布尔值为true,执行++b,&&表达式布尔值为true,不执行c++; 结果a,b都加了1,而c不加。 */

/* a == b == (c+1) */
第2个回答  2013-09-22
去看优先级别 对着找
相似回答