| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1891 人关注过本帖
标题:多个i++和++i的区别,不同的编译器有不同的结果,无意间发现的……
只看楼主 加入收藏
秦时的明月夜
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:13
帖 子:126
专家分:504
注 册:2013-3-12
结帖率:91.67%
收藏
 问题点数:0 回复次数:5 
多个i++和++i的区别,不同的编译器有不同的结果,无意间发现的……
程序代码:
#include<stdio.h>
int main(){
    int i=5;
    int m,n,k;
    int p,q;
    q=(m=(i++))+(n=(i++))+(k=(i++));
    printf("m:%d n:%d k:%d i:%d q:%d",m,n,k,i,q);
    printf("\n");
    i=5;
    p=(m=++i)+(n=++i)+(k=++i);
    printf("m:%d n:%d k:%d i:%d p:%d\n",m,n,k,i,p);
    i=5;
    p=(++i)+(++i)+(++i);
    printf("m:%d n:%d k:%d i:%d p:%d",m,n,k,i,p);
    printf("\n");
    
    return;
}
//m:5 n:5 k:5 i:8 q:15
//m:6 n:7 k:8 i:8 p:21
//m:6 n:7 k:8 i:8 p:22

程序代码:

public class Main {
    public static void main(String[] args) {
        int i=5;
        int m,n,k;
        int q=(i++) + (i++) + (i++);
        i=5;
        q=(m=i++) + (n=i++) + (k=i++);
        System.out.println("m:"+m+" n:"+n+" k:"+k);
        System.out.println("q:"+q);
        System.out.println("===============");
        i=5;
        int p=(m=++i) + (n=++i) + (k=++i);
        System.out.println("m:"+m+" n:"+n+" k:"+k);
        System.out.println("p:"+p);
        System.out.println("===============");
        i=5;
        p=(++i) + (++i) + (++i);
        System.out.println("p:"+p);
    }

}
//m:5 n:6 k:7
//q:18
//===============
//m:6 n:7 k:8
//p:21
//===============
//p:21

不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。

[ 本帖最后由 秦时的明月夜 于 2015-6-2 15:24 编辑 ]
搜索更多相关主题的帖子: include 编译器 color 
2015-06-02 11:05
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 

剑栈风樯各苦辛,别时冰雪到时春
2015-06-02 11:28
秦时的明月夜
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:13
帖 子:126
专家分:504
注 册:2013-3-12
收藏
得分:0 
我知道,同一种语言下的编译器不一样结果也不一样,java 和c 还不一样的……他们处理的顺序是不一样的,就是和编译器有关系,比如  i=5,int m=i++ + i++在c里面 是先把i 的值赋值给变量m=5+5=10;i=7,java 不一样是 m=5+6=11 ;i=7;
2015-06-02 15:30
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
还是其他语言的 i=i+1 比较老实一些  c语言发明者 创建i++的同时  居然还创建了++i  各种编译器对此的解释还不一致   真晕

DO IT YOURSELF !
2015-06-02 15:43
日知己所无
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:38
帖 子:427
专家分:2071
注 册:2014-3-22
收藏
得分:0 
对于Java来讲,所有的JVM的实现应该都是一样的,这是由语言本身确保的。换言之,可以迷信Java……
2015-06-05 17:59
cracker_meng
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-10-10
收藏
得分:0 
c语言是是用什么编译器  VC?
2016-10-10 12:32
快速回复:多个i++和++i的区别,不同的编译器有不同的结果,无意间发现的……
数据加载中...
 
   



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

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