c语言自加符号第7题应该是按什么顺序算?
2个回答
展开全部
C)正确,2。因为问的是表达式“a++<b ? a++ : c<d ? a++ : d"的值是多少,并没有问a的值是多少。a的值是3不错,但表达式的值是2,羡梁实际上就是第二个a++的++还没有执行的a的值。毁派迹这可以用下列代码验证:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
int a=1,b=2,c=3,d=4;
printf("%d\n",a++<b ? a++ : c<d ? a++ : d);
return 0;
}
输出是2。所以答案给出的分析是张冠李戴,胡搅蛮緾……
运纤并算顺序是——因为a++<b成立(判断成立后就执行第一个a++使a为2),所以执行第一个?后的a++,但因为是后++,所以要等整个表达式给临时变量赋值后,再执行第二个a++使a最后为3。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询