假定 int a=1,b=2,c=0,表达式:c=(a== --b||--a,a+b+1.0/2) 的值是 B .
人气:282 ℃ 时间:2020-04-11 14:54:25
解答
①结果为2
②int a=1,b=2,c=0;
c=(a==--b||--a,a+b+1.0/2);
我们先把其中所有运算符列出来,先低后高:
=
,
== ||
+
/
--
()
③按以上优先级顺序,从高优先级开始加括号:
c=(((a==(--b))||(--a)),((a+b)+(1.0/2)));
== || 这两个操作符优先级相等,就按从左到右的顺序加括号
我们分析一下,先进行 --b;
再进行 a==(b);
这时候成立,
|| 有一个断路特点 比如 1||(--a) 这时候 --a不会被执行.
逗号运算符的特点是,其最终值只是最后一个逗号表达式的值(但前面会按顺序去运算).
④c=2.5; 但是c 是int型,所以自动隐式转化为2.
⑤还有什么不清楚加QQ 739227481
推荐
- 设 int b=2;表达式(b>>2)/(b>>1)的值是 A) 0 B) 2 C) 4 D) 8
- 假定 int a=1,b=2,c=0,表达式:c=(a== --b
- 设int x=1,y=1;表达式(!x逻辑或y--)的值是() A.0 B.1 C.2 D.-1
- 若有定义:int a=3,b=2,c=1;并有表达式:①a%b,②a>b>c,③b&&c+1,④c+=1,则表达式值相等的是哪两个?
- 假定int a=2,b=5,表达式:a+'1'+(float)(b/a)的值
- C9H20的35个同分异构体的结构简式
- I hope you can finish your task().A.success B.successful C.successful D.succed
猜你喜欢