假定 int a=1,b=2,c=0,表达式:c=(a== --b||--a,a+b+1.0/2) 的值是 B .

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/19 13:34:42
假定 int a=1,b=2,c=0,表达式:c=(a== --b||--a,a+b+1.0/2) 的值是 B .
xSnP„J`|ͪ]zFlQ@ !RUMεY TU]fsm=g9sek- Q䔨ʒE??[c,DBմDBO&%x7]֚ ~J Z2I4緞s:mj/8s8+ ?:k=6=M(.M_ďfںV.ei]<Km!lKXE*: Pe1绉'($A4* b- &DBJ__QCvQ6mob3U9 ~/.: j.k[ VBjDi +f4Qj.'| lA;ܟTqB*u-7bLl&/p( 9C,#:wQqۺM?!5غ.?t`Bg FELn/P r׭G 1;rB^oSr ??

假定 int a=1,b=2,c=0,表达式:c=(a== --b||--a,a+b+1.0/2) 的值是 B .
假定 int a=1,b=2,c=0,表达式:c=(a== --b||--a,a+b+1.0/2) 的值是 B .

假定 int a=1,b=2,c=0,表达式:c=(a== --b||--a,a+b+1.0/2) 的值是 B .
①结果为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