1
y的值为3.
||表达式是先计算前面的部分, 若前面为"真"(即非0), 则后面的不执行, 且||表达式的值为1.
在t=++x||++y中, ++x的值为4, 是"真", 故后面的++y不执行. 所以, y的值为3. t为1.
你可以将t=++x||++y 看成这样:
++x;
if (x != 0)
t=1;
else
{
++y;
if (y != 0)
t=1;
else
t=0;
}
2
n的值为2.
&&类似,先计算前面的部分, 若前面为"假"(即0), 则后面的不执行, 且&&表达式的值为0.
(m=a>b)&&(n=c>d);中, m=a>b的值为0, 故后面的n=c>d不执行,即n仍为2
你可把(m=a>b)&&(n=c>d)看成:
m=a>b;
if (m!=0)
n=c>d;
1.1 因为++x和++y的值都不为0,所以t的值就为1
2.0 因为c>d为假,值为0,所以n的值为0.
1=) 3
2=) 2
"回答者: coolxp2005 - 举人 四级 2-25 23:07"解释的很详细!
1. 3 前面的可以执行,则后面就不执行了
2. 2
1:Y=3(t=++x||++y语句只执行前面的);
2:-1