y=++x-1表达式的值?

[复制链接]
查看11 | 回复3 | 2008-12-29 10:36:03 | 显示全部楼层 |阅读模式
程序如下:
#include
int main(void)
{
int x,y,z;
x=y=2;z=3;
y=x++-1;printf("%d\t%d\n",x,y);
//先引用,y:2-1=1,x=3
y=++x-1;printf("%d\t%d\n",x,y);
//x先为3,++x为4;y:4-1=3,
return 0;
}
“//”后为书上的注释。我认为第二个printf中x=3,y=3-1=2,此时x增值后并不再增值,这种理解是否正确?

回复

使用道具 举报

千问 | 2008-12-29 10:36:03 | 显示全部楼层
书上的解释是对的。y=++x-1;x先自增1得到x=4,然后进行计算得到y=3.然后printf("%d\t%d\n",x,y); 把x和y打印出来。...
回复

使用道具 举报

千问 | 2008-12-29 10:36:03 | 显示全部楼层
不对。书上讲的是正确的。x++和++x都是给x自加1,不过x++返回加1前的结果,++x返回加1后的结果。...
回复

使用道具 举报

千问 | 2008-12-29 10:36:03 | 显示全部楼层
y=x++ -1;printf("%d\t%d\n",x,y);//先引用,y:2-1=1,x=3不是返回x=3嘛,然后y=++x-1;其中x的初值为上步的3,再算++x为4....
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行