设x,y,z均为int型变量,则执行语句:x=y=z=3;t=++x||++y后,y的值为多少 要求分析,谢谢

如题所述

第1个回答  2012-03-16
x=y=3;
t=++x||++y;
所以3
因为第一句y=3,第二句t=++x,则t=4为真,因为“||或”运算符只要前面为真,整体就为真,所以它不会再去执行++y语句,所以y还是等于3
第2个回答  2011-11-22
逻辑表达式求解不一定对逻辑运算符两遍表达式都求解。
t = ++x || ++y
^
x = 4非0,为真
由于是逻辑或,一个为真则都为真,所以++y不执行
第3个回答  2011-11-22
x=y=z=3;t=++x||++y
结果1
++x 为4,非0为真
++y 为4,非0为真
||就是逻辑或,真||真仍为真,所以t 为1本回答被提问者采纳
第4个回答  2011-11-23
y的值为3
解释:自增运算符(++)高于逻辑运算符(||),逻辑运算符(||)高于赋值运算符(=),所以先求++x值,为4,即真,这时||的值肯定为真,就不会执行++y,因为在c语言中,用&&对两个表达式进行计算时,若第一个表达式的值为"假",则运算结果与第二个表达式的值无关,结果肯定为"假",所以C语言规定此时第二个表达式将不再计算。同样用||对两个表达式进行计算时,若第一个表达式的值为"真",则运算结果与第二个表达式的值无关,结果肯定为"真",所以C语言规定此时第二个表达式也不再计算。而逻辑运算符计算结果为“真”和“假",用0和1表示,所以++x||++y逻辑表达式的值为真,即1,因此:t=1,y的值不变(没有执行++y)
相似回答