如题所述
设x,y,z,s均为int型变量,且初值为1,则执行语句:
最后s的值是1。
s=++x||++y&&++z 这一句中,运算符优先级顺序为:++最高,其次是&&,然后是||,最后是
=
该句完全等价于:
++x;
if (x!=0)
s=1;
else
{
++y;
if (y!=0)
++z;
if (z!=0)
s=0;
}
Int:
Int是将一个数值向下取整为最接近的整数的函数。INT是数据库中常用函数中的取整函数,常用来判别一个数能否被另一个数整除。
由运算符优先级可知,原式等效于
由||运算符的短路效应可知,子表达式++x的值为非零,即为真,所以||右侧的子表达式不会执行,即只有x自增了1,y和z值不变,且子表达式(++x||(++y&&++z))值为真,即1
所以可知x值为2;s值为1;y和z值不变,仍为1