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

求详细的讲解。。谢谢

我来给你详细说说:
(++x,y++),这是逗号表达式,先执行++x,然后执行y++;结果取逗号后面表达式的值,也就是y++的值。y++的值为3,因为这是后加表达式,如果是前加++y的话,值就是4;
z+2的值是1+2=3;
所以结果输出是3 3
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-20
1 本题考查的是逗号表达式知识点,逗号表达式的值是最后一个表达式的值。
2 (++x,y++)这个逗号表达式的值是最后一个表达式y++的值,而y++的值是3。
3 程序最后输出:33
4 第一个3是(++x,y++)这个逗号表达式的值,第二个3是z+2这个表达式的值。
第2个回答  2012-03-20
首先哦 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
第3个回答  2012-03-20
输出(++x,y++)和Z+2的值,其中(++x,y++)就是输出y的值,Y++就是先输出y再自加1,++y就是加1在输出y,x没他什么事;