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

2024-12-02 09:00:33
推荐回答(3个)
回答1:

要看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

回答2:

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) */

回答3:

去看优先级别 对着找