#include<stdio.h> main() { int y=3,x=3,z=1; printf("%d%d\n",(++x,y++),z+2) }的值。是怎么运算的?

求详细的讲解。。谢谢... 求详细的讲解。。谢谢 展开
 我来答
留在枫树qq
推荐于2018-03-20
知道答主
回答量:4
采纳率:0%
帮助的人:8.5万
展开全部
我来给你详细说说:
(++x,y++),这是逗号表达式,先执行++x,然后执行y++;结果取逗号后面表达式的值,也就是y++的值。y++的值为3,因为这是后加表达式,如果是前加++y的话,值就是4;
z+2的值是1+2=3;
所以结果输出是3 3
sun_siliang
2012-03-20 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:4617万
展开全部
1 本题考查的是逗号表达式知识点,逗号表达式的值是最后一个表达式的值。
2 (++x,y++)这个逗号表达式的值是最后一个表达式y++的值,而y++的值是3。
3 程序最后输出:33
4 第一个3是(++x,y++)这个逗号表达式的值,第二个3是z+2这个表达式的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
CC暖调调
2012-03-20 · TA获得超过380个赞
知道答主
回答量:26
采纳率:0%
帮助的人:20.2万
展开全部
首先哦 printf 那个语句少了个分号~
printf是个输出语句 输出这个%d%d\n
\n是换行
第一个%d指(++x,y++)这个的值 括号是为了区分。重点是 逗号运算。 它 第一步 先把++x的值算出来,从左到右先+1再用x 所以最后++x的值是4。 第二步 把y++的值算出来 从左到右 先用y再+1. 所以y++的值是3。 第三步 把y++的值赋给%d 。 所以第一个%d的值是 3。

第二个%d 1+2=3 所以也是3.
最后输出 33
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
苏东坡的哥们
2012-03-20
知道答主
回答量:36
采纳率:0%
帮助的人:11.3万
展开全部
输出(++x,y++)和Z+2的值,其中(++x,y++)就是输出y的值,Y++就是先输出y再自加1,++y就是加1在输出y,x没他什么事;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式