A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 荣右铭 于 2013-10-14 19:04 编辑

代码如下:   
static void Main(string[] args)
        {

           func(Console.ReadLine(),Console.ReadLine());
           Console.ReadKey();
        }
        static void func(string a, string b)
        {
            Console.WriteLine("{0},{1}",a,b);
           }
从流中读取两个字符串交给a和b,正常输出;
我们再写一段C语言中相同功能的代码:
void func(char *a,char *b){
                printf("%s %s",a,b);
        }
int main(void){
        char *a,*b;
        a=malloc(64);
        b=malloc(64);//
        func(gets(a),gets(b));
        return 0;
}

这时候的输出却是和输入相反的,比如我们输入
hello
world,
输出的却是
world
hello
这里我就一个困惑,请问都是从流中读取字符串,这种输入和输出相反的现象,是不是由于函数参数进栈的顺序不同造成的?
如果是,那么两种语言的参数进栈方式又有什么不同。

3 个回复

正序浏览
估计这个问题太深,实在没人回答,版主你批准我把它结了吧。。。
回复 使用道具 举报

楼主你好,如果你的问题已自行解决请解释,请及时把分类设为已解决,黑马有你更精彩!
回复 使用道具 举报
亲,没有同学给你回答你提问的问题呀,不能设置成已解决呀。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马