标题:C++输出与C#的输出的区别?
只看楼主
hero2007
Rank: 1
来 自:湖北武汉
等 级:新手上路
威 望:1
帖 子:130
专家分:0
注 册:2007-3-22
 问题点数:0 回复次数:3 
C++输出与C#的输出的区别?
using System;

namespace ConsoleApplication1
{
    class Class1
    {
        [STAThread]
        
        static void addout(int m,int n,int j)
        {
            Console.WriteLine("{0},{1},{2}",m,n,j);
            Console.ReadLine();
        }
        static void Main(string[] args)
        
        {   
            int i=0;
            addout(i++,i++,i++);
        }
    }
}
上面是C#程序,输出的是0,1,2
在C++中类似的储程序输出的是:0,0,0


C++程序:
#include "iostream.h"

void addout(int m,int n,int j)
{
cout<<m<<","<<n<<','<<j<<endl;
}

void main()
{
int i=0;
addout(i++,i++,i++);
}


输出不一样原因是因为C++中的是一次输出,而C#中是依次输出?
或者是因为C++中参数传递是整体一起传的,而C#中是按逗号运算符的顺序依次传递的?

[[italic] 本帖最后由 hero2007 于 2007-12-20 00:59 编辑 [/italic]]
搜索更多相关主题的帖子: int 输出 void addout 
2007-12-20 00:54
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1026
专家分:177
注 册:2007-5-10
得分:0 
我认为是编译器决定的,和语言本身没关系
2007-12-20 16:28
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
得分:0 
先说说,不要写这种语句!这种语句是没有意义的(跟具体实现有关)
具体说来。编译器将C#编译成MSIL,中间语言,如果是最终版本的程序,才会在部署的时候将MSIL编译成机器语言。你在调试的时候,其实程序是解释执行的!所以是一边算一边执行。结果就是0,1,2
而C++是编译型语言。上面的式子,后自加在“;”的时候运算。也就是先四个参数入栈(算上字符串),然后call printf,再ret,然后再自加的。所以显示是0,0,0
再重复一遍。不要被老谭给忽悠了。这种代码没意义的。

专心编程………
飞燕算法初级群:3996098
我的Blog
2007-12-30 04:56
hero2007
Rank: 1
来 自:湖北武汉
等 级:新手上路
威 望:1
帖 子:130
专家分:0
注 册:2007-3-22
得分:0 
嗯,明白了
2007-12-31 01:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-193426-1-1.html




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

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