注册 登录
编程论坛 C++教室

关于自加,自大减的问题

xubao6000 发布于 2011-06-09 11:22, 662 次点击
main()
{
    int x,y,j,k;
    x=2;y=3;
 
    j=(++x)+(++x)+(++x);
 
    k=(y--)+(y--)+(y--);

    printf("j=%d,k=%d\n",j,k);
 
    printf("x=%d,y=%d\n",x,y);
}

输入出结果为何 j是13?求解,谢谢。。。
6 回复
#2
ToBeStronger2011-06-09 12:16
我的理解:4+4+5=13
#3
xubao60002011-06-09 12:25
回复 2楼 ToBeStronger
谢谢,但是为什么第一个++x是4呢,我想不通,我觉得应该是3才对呀...我的理解是应该是3+4+5=12,不知道是哪里出了错...
#4
ToBeStronger2011-06-09 13:42
回复 3楼 xubao6000
第二x变成4时,前面一个也自动变成4,因为指向的x是同一个
#5
lz10919149992011-06-09 14:29
看看这个贴LZ就明白了。
https://bbs.bccn.net/thread-342156-1-1.html
#6
ljt2011-06-09 22:57
这个东西好像和编译器有关,我们老师以前讲过
#7
乖乖承诺2011-06-12 10:04
以下是引用ToBeStronger在2011-6-9 13:42:38的发言:

第二x变成4时,前面一个也自动变成4,因为指向的x是同一个

懂了,貌似,谢谢
1