若有定义:int a=0,b=0,c=0,d=0;,以下关于C语言表达式:(++a || ++b) : ++c : ++d 执行顺序的叙述正确的是

admin2020-10-26  43

问题 若有定义:int  a=0,b=0,c=0,d=0;,以下关于C语言表达式:(++a || ++b) : ++c : ++d 执行顺序的叙述正确的是

选项 A、先执行++a,表达式++a的值为1;再执行++b,表达式++b的值为1,由此可确定(++a || ++b)值为1,因此执行++c
B、先执行++a,表达式++a的值为1,由此可确定(++a || ++b)值为1,因此执行++c
C、先执行++b,表达式++b的值为1;再执行++a,表达式++a的值为1,由此可确定(++a || ++b)值为1,因此执行++c
D、先执行++b,表达式++b的值为1,由此可确定(++a || ++b)值为1,因此执行++c

答案B

解析 表达式1:表达式2:表达式3,若表达式1为真,则执行表达式2,否则执行表达式3,++a表示先将变量a+1,再执行其他操作,逻辑或运算符遵循"短路求值"策略,即只有在仅靠左操作数的值无法确定该逻辑表达式的结果时,才会求解右操作数,表达式(++a || ++b)中,左操作数++a的值为1,已经可以确定整个逻辑表达式的结果为1,因此右操作数++b不再求解,直接执行表达式2,即++c,答案为B选项。
转载请注明原文地址:https://kaotiyun.com/show/EC3p777K
0

最新回复(0)