C语言的问题,高手请进

[复制链接]
查看11 | 回复2 | 2011-3-19 12:58:24 | 显示全部楼层 |阅读模式
#includestdio.h
void main()
{
int x,y,z;
x=y=1;z=x,y,y;
printf(\"%d,%d,%d\\n\",x,y,z);
}
题目问最后结果。对于x和y的结果我都没有疑问,但是对于z,我认为应该等于3,因为z应该取逗号表达式中最后一个式子的值。但是答案给的却是z的值是1.我用程序运行了以后也是1.不知道原因在哪里?
回复

使用道具 举报

千问 | 2011-3-19 12:58:24 | 显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">z=x,y,y;//赋值运算高于逗号运算,所以先执行z=x,表示将x的值1赋给z,然后x值加1。
回复

使用道具 举报

千问 | 2011-3-19 12:58:24 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-1991360\">不对吧?i=x等价于:
①i=x;
②x=x 1;
吧?不信请你输入到程序里试一下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行