| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 746 人关注过本帖
标题:自增运算!愁
取消只看楼主 加入收藏
我乃新手
Rank: 2
等 级:论坛游民
帖 子:52
专家分:73
注 册:2012-7-23
结帖率:100%
收藏
已结贴  问题点数:50 回复次数:3 
自增运算!愁
程序代码:
#include<iostream>
      using namespace std;
      int main(void){
        int i=10;
        printf("i++=%d,i=%d,i++=%d\n",i++,i,i++);
        return 0;
        }        

    结果为什么是11,12,10   ???
    printf不是先从右往左入栈,然后再出栈么?
    大神帮忙分析一下!
2012-07-28 12:20
我乃新手
Rank: 2
等 级:论坛游民
帖 子:52
专家分:73
注 册:2012-7-23
收藏
得分:0 
以下是引用yuma在2012-7-28 12:25:48的发言:

i++    先被操作再自增1
++i    先自增1再被操作


我知道i++,++i,就是不知道结果。
我是说结果是怎么一回事,结果是怎么过来的!!
过程明细化.........
2012-07-28 12:28
我乃新手
Rank: 2
等 级:论坛游民
帖 子:52
专家分:73
注 册:2012-7-23
收藏
得分:0 
以下是引用yuma在2012-7-28 12:53:32的发言:

妳寫的那個源代碼,我用TC VC都無法進行編譯,真不知道妳那得到的結果是怎麽來的。



我是在Linux下用vim编译的,就是问一下printf输入i++,i,i++的结果!
亲,明白了么?
你把using namespace std;去掉就可以编译了
VC6.0的结果是10,10,10  没有统一的标准
2012-07-28 13:07
我乃新手
Rank: 2
等 级:论坛游民
帖 子:52
专家分:73
注 册:2012-7-23
收藏
得分:0 
回复 7楼 LShang
嗯,在linux下用vim编译的.cpp文件!
就是不懂结果为什么是11,12,10
why??????

要是printf("i=%d,i++=%d,i++=%d",i,i++,i++)
结果就是12,11,10??
这个printf是从右向左入栈的,这个结果应该不难想到,
就是上面的结果不知怎么来的!
2012-07-28 13:12
快速回复:自增运算!愁
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016155 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved