有如下程序 #include main() { int a = 0, b = 1; if (a++ && b++) printf("T"); else printf("F"); printf("a=%d,b=%d\n", a, b); } 程序运行后

admin2015-07-28  26

问题 有如下程序
#include
main()
{
int a = 0, b = 1;
if (a++ && b++)
printf("T");
else
printf("F");
printf("a=%d,b=%d\n", a, b);
}
程序运行后的输出结果是( )。

选项 A、Fa=1,b=1
B、Fa=0,b=2
C、Ta=1,b=2
D、Ta=0,b=1

答案A

解析 自加运算符后置的时候,该变量是先使用后自加1。并且根据逻辑表达式的"短路求值"原理,判定表达式"a++"的值为0,整个逻辑表达式的值为0,而且"b++"不再计算。a=1,b=1,所以输出结果为选项A)。
转载请注明原文地址:https://jikaoti.com/ti/bsn0FFFM
0

最新回复(0)