本帖最后由 荣右铭 于 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
这里我就一个困惑,请问都是从流中读取字符串,这种输入和输出相反的现象,是不是由于函数参数进栈的顺序不同造成的?
如果是,那么两种语言的参数进栈方式又有什么不同。
|
|