全局变量和局部变量的小问题
请问这个题为什么输出结果为5,25?全局变量和局部变量同名时应该是局部变量起作用,全局变量被屏蔽了呀!
#include<stdio.h>
void num()
{extern int x,y;
int a=15,b=10;
x=a-b;
y=a+b;
}
int x,y;
main()
{int a=7,b=5;
x=a+b;
y=a-b;
num();
printf("%d,%d\n",x,y);
}
恩!就是这个结果
int x,y 是全局变量,调用了num()后,接着又执行x=a+b;y=a-b;重新赋值了呀!
int x1=30,x2=40;
main()
{ int x3=10,x4=20;
sub(x3,x4);
sub(x2,x1);
printf("%d,%d,%d,%d\n",x3,x4,x1,x2);
}
sub(int x,int y)
{x1=x;x=y;y=x1;}
答案为10,20,40,40,想不通为什么x2为40。