局部变量与全局变量的问题
请问,下面的程序中怎么理解?
#include <stdio.h> int x =1; int fn1(int x) { int y,z; z=2; y=x+z; printf("y=%d\n",y); /*这里为什么会输出“y=4”,在上面不是定义了“x=1;”的吗?应该是3啊!虽然我懂下面的调用函数中“fn(2)”又定义了x值,但是为什么程序不使用“x=1”计算呢?*/ return 0; } int main() { fn1(2); int y=10; printf("x+y=%d",x+y); /*这里为什么x值又是按照“x=1”计算的?*/ return 0; }
该程序得出的结果是
y=4
x+y=11
请大神帮忙解答!谢谢!