1.题目:
设有以下程序段 int a=1,b=10,c=1,x; x=a &&b || ++c; printf("%d,%d\n",x,c); 执行后输出的结果是?
2.代码+分析:
#include<stdio.h>
int main()
{
int a=1,b=10,c=1,x;
x=a &&b || ++c;
printf("%d,%d\n",x,c);
//该题经过调试,可证明短路问题比运算符优先级更高
//若优先级比短路高,先考虑短路问题,更节省效率
//流程分析:按照优先级来说,++级别为第二,&&排十一,||排十二
//但短路问题可以比优先级先考虑,所以执行顺序应为:
// a &&b =1 && 10为真
// 1 || 此时触发短路问题 ,逻辑或右边不再执行,直接输出结果
// x=1,c=1
}
3.截图: