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

admin2017-07-05  30

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

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

答案A

解析 表达式1.表达式2:表达式3,若表达式1为真,则执行表达式2,否则执行表达式3。逻辑与运算符遵循“短路求值”策略,即只有在仅靠左操作数的值无法确定该逻辑表达式的结果时,才会求解右操作数,表达式(a++&&b++)中,左操作数a++的值为0,已经可以确定整个逻辑表达式的结果为0,因此右操作数b++不再求解,直接执行表达式3,即d++,答案为A选项。
转载请注明原文地址:https://jikaoti.com/ti/NYi0FFFM
0

最新回复(0)