c语言自加符号第7题应该是按什么顺序算?

 我来答
White_MouseYBZ
推荐于2016-06-15 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6470万
展开全部

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。

仨村
2015-09-08 · TA获得超过156个赞
知道小有建树答主
回答量:218
采纳率:25%
帮助的人:109万
展开全部
选c=2
优先级,从右边往左边依次算出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式