c语言问题:

#include "stdio.h"

void main()
{
int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
这个程序的输出结果是2,3,1。请详细说明一下运算过程,尤其是z=x++,y++,++y;
多谢了!!

逗号运算符优先级比赋值低,返回值是最右边那个表达式的值
先做z=x++,x++是把x加一,返回值仍是x,于是z=x,
再做y++,同x++
再做++y,把y加一,返回加完后的值。
所以z=1,x=2,y=3
懂了吧?
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-09-11
z=x++; //x先返回1,然后++,所以z等于1,x等于
y++ ++y 分别让y加1,最后y等于3

z=x++,y++,++y;是一个逗号表达式,取第一个表达式的值