当前位置: 代码迷 >> C语言 >> 函数问题
  详细解决方案

函数问题

热度:471   发布时间:2007-04-13 13:28:40.0
函数问题
#include "stdio.h"
int s();
int x,y;
main()
{int n;
x=1;y=2;
n=s();
printf("x=%d,y=%d,n=%d,x,y,n);
}
int s()
{int z;
x=3;y=4;
z=x+y;
return(z);
}
运行结果是x=3 y=4 n=7,为什么啊?函数不是实参向形参传递吗?为何不是x=1 y=2 n=3?
搜索更多相关的解决方案: 函数  

----------------解决方案--------------------------------------------------------
x和y是全局变量,调用s()函数后,x被重新赋值为3,y为4

----------------解决方案--------------------------------------------------------
晕, 你的X,Y是全局变量啊,全局变量在单元里只要没被屏蔽都是有效的,你说的哪个情况是局部变量。
----------------解决方案--------------------------------------------------------
x,y 现赋值了1,2
s()中又重新赋值了,也就是说x=1;y=2;这句写不写都可以
----------------解决方案--------------------------------------------------------
  相关解决方案