C语言中哪些运算是由左向右结合哪些是右向左结合请详细说明并解释下下面的题

定义X Y为double型变量,则表达式x=1,y=x+3/2的值是
2024-11-29 00:31:23
推荐回答(3个)
回答1:

x=1,y=x+3/2的值是? 答案为:2
先计算3/2,由于是整形计算,结果为1(整型数据);而后,x+1,因为x为浮点数据,所以计算结果结果为2(浮点型数据)。

优先级 运算符 结合性
(最高) () [] -> . 自左向右
! ~ ++ -- + - * & sizeof 自右向左
* / % 自左向右
+ - 自左向右
<< >> 自左向右
< <= > >= 自左向右
== != 自左向右
& 自左向右
^ 自左向右
| 自左向右
&& 自左向右
|| 自左向右
?: 自右向左
= += -= *= /= %= &= ^= |= <<= >>= 自右向左
(最低) , 自左向右

回答2:

Y的值应该是2.000000,3/2=1,但是3和2都是整型~所以只能保留1,儿X为double,所以继续计算时把3/2的值转化为double,然后为Y 赋值,Y=2.000000。额~至于你说的从左向右还是从右向左~我不知道你表达是哪个意思~~是想知道运算的优先级吗?

回答3:

值是2
双目运算符 是自左向右结合
单目和三目运算符 是自右向左结合