a=25&&b--<=2&&c++?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);的值为

已知a=10,b=20,c=30,则表达式... 已知a=10,b=20,c=30,则表达式 展开
刘作程
2011-10-15 · TA获得超过109个赞
知道答主
回答量:20
采纳率:0%
帮助的人:8.7万
展开全部
结果:为“###a=10,b=19,c=30”

本道题考的主要是算符优先级、算符结合方向和printf()的返回值,本题中的算符优先关系为:
() 优先于 ++/-- 优先于 <= 优先于 && 优先于 ?:优先于 =。
详细资料可参考http://baike.baidu.com/view/1516130.htm#3

为了便于理解,我把语句进行改写(加入括号、断行),其等价语句为:
int a=10,b=20,c=30;
int X=0,Y=0;
X = 25 && ((b--)<=2) && (c++); // 25 && ((b--)<=2)已经能判断为假,不再执行c++
Y = X ? // Y得到printf的返回值,其返回值为printf()输出的字符个数
printf("***a=%d,b=%d,c=%d\n",a,b,c)
:
printf("###a=%d,b=%d,c=%d\n",a,b,c);
a=Y; // Y的值为18.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式