中国游客被赶下飞机:c语言问题

来源:百度文库 编辑:高考问答 时间:2024/05/02 02:01:36
void showvalue(int,int)
main()
{int x=100,y=200;
showvalue(y,x);
printf("x=%d,y=%d\n",x,y);
}
void showvalue(int x,int y)
{printf("x=%d,y=%d\n",x,y);
x=400;y=800;
}
输出结果 解释一下 谢谢
能在详细点吗 多谢

输出结果:
x=200,y=100↘
x=100,y=200↘
首先一个:main函数中的变量x,y和showvalue函数中x,y虽然是用同样的字母表示,但在不同的函数段内,是不同的变量,现在把showvalue中的x,y记为x1,y1以区别。
调用函数时,先作操作:x1=y;y1=x;然后执行showvalue函数中的内容,再返回main执行后面的内容。
所以,执行showvalue里面的printf("x=%d,y=%d\n",x,y)也即printf("x=%d,y=%d\n",x1,y1),输出x=200,y=100↘
而执行后面的x=400;y=800; 实际上是执行x1=400;y1=800; main里面的变x,y并不改变,所以后面还是输出x=100,y=200↘
还有问题吗?

答案是
x=200,y=100
x=100,y=200

showvalue() 是一个没有返回值的函数

所以在主函数中x,y的值不会发生变化
而在传值调用时 出现了变化
所以在函数内发生对调

x=100,y=200
x=100,y=200

参数只能单向传递