黑马程序员技术交流社区
标题:
C和C#的类比,关于C#中函数参数入栈顺序,困惑
[打印本页]
作者:
荣右铭
时间:
2013-10-7 17:37
标题:
C和C#的类比,关于C#中函数参数入栈顺序,困惑
本帖最后由 荣右铭 于 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
这里我就一个困惑,请问都是从流中读取字符串,这种输入和输出相反的现象,是不是由于函数参数进栈的顺序不同造成的?
如果是,那么两种语言的参数进栈方式又有什么不同。
作者:
SunshineGirl
时间:
2013-10-9 09:44
亲,没有同学给你回答你提问的问题呀,不能设置成已解决呀。
作者:
追溯客
时间:
2013-10-14 17:04
楼主你好,如果你的问题已自行解决请解释,请及时把分类设为已解决,黑马有你更精彩!
作者:
荣右铭
时间:
2013-10-14 19:02
估计这个问题太深,实在没人回答,版主你批准我把它结了吧。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2