迅速啊~ 求帮解答一道C语言题!在线等

来源:百度知道 编辑:UC知道 时间:2024/06/06 19:35:57
设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为
答案是3 为什么?

请高手速度回答啊 我会追加分的

我大概调试看了一下....发现t=++x||++y;这句执行之后t的值为1,x为4,y为3
我估计是"||"在这里是作为真假判断,也就是判断||前后哪个为真(值为1),然后赋值给t
这里先判断了x的值,自加之后为4,也就是真,然后将1赋值给了t
所以++y就没有执行

我也是一个c菜鸟....上面仅供参考...

先给t付值在自加

逻辑或运算符 || 有一个特性,举个例子吧:
a||b;这个表达式,当a为真时表达式为真,不去验算b的真假

&&也有一个特性
a&&b;当a为假时表达式为假,不去验算b的真假


x=y= -1;
t=++x||++y;
++x 为 0, 0 就是假,这时要计算 ++y,
所以 y=0

x=y=3;
t=++x||++y;
++x 为 4, 4 大于 0 就是真,|| 运算结果必然是真 ,所以不计算 ++y; y 结果不变,保持 3

“或”运算有个特点,执行判断时如果前面的语句为真那么就不执行后面的语句而直接判定为真,赋值语句无疑为真,所以没有执行 y