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

admin2021-07-09  30

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

选项 A、先执行a++,表达式a++的值为0,由此即可确定(a++&&b++)的值为0,因此执行d++
B、先执行a++,表达式a++的值为0;再执行b++,表达式b++的值为0,由此可确定(a++ && b++)值为0,因此执行d++
C、先执行a++,表确定(a++ && b++)值为1,因此执行c++达式a++的值为1;再执行b++,表达式b++的值为1,由此可
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/QFz0FFFM
0

最新回复(0)