C++的两个小题

来源:百度知道 编辑:UC知道 时间:2024/06/08 13:13:33
求表达式的值:a=3
1.a=3*5,a=b=3*2
2.(int)(a+6.5)%2+(a=b=5)
我感觉噢:都是左到右的顺序,a=15,15=b=3*2?这就不对了啊?
2.Int4.7+(3=b=5)
4+(3=b=5)?

=赋值表达式。把等号右边的赋给左边的。从右往左
1.a=3*5,得a=15 ;a=b=3*2,得a=6,b=6
2.(int)(a+6.5)%2+(a=b=5) ,得6
2.Int4.7+(3=b=5) 式子错了吧?3=b=5?
再下来也没看懂什么意思
(int)(a+6.5)%2+(a=b=5)的计算如下:
(3+6.5)=9.5,之后先算(int)(9.5)=9!!!(类型)的优先级高于%!!!然后9%2=1.最后1+5=6,看到a77456856 - 试用期 一级的回答的计算方法,,貌似是错误的吧!,写一下计算方法,呵呵
出现的运算符优先级排序:() (类型)【即题中的(int)】 % +

1.=是赋值号,a=6
2.(int)(a+6.5)%2=(int)1.5=1 (取余取整)
故,答案是6