#include <stdio.h>
int x,y,a=15,b=10;
void num()
{ x=a-b;
y=a+b; }
void main()
{
int a=7,b=5;
x=x+a;
y=y-b;
num();
printf(“%d,%d\n”,x,y);
}
程序输出为什么是5,25啊?有一点蒙了。。
mian()里面不是有了a=7,b=5吗,为什么到了num()中不用a=7,b=5而是用上面的a=15,b=10呢。。。
其实很容易区分。
你在程序加多句输出就可以进行比较区分了。
原程序中的主函数printf输出的只是num函数数据
#include <stdio.h>
int x,y,a=15,b=10;
void num()
{ x=a-b;
y=a+b; }
void main()
{
int a=7,b=5;
x=x+a;
y=y-b;
printf("%d,%d\n",x,y);//输出主函数中x,y的数据
num();
printf("%d,%d\n",x,y); //输出num函数数据
}
总的来说:全局函数使用时要注意两点:
1,全局变量可以在多个函数中使用,当其中一个函数改变了全局变量的值,可能会影响其他函数的执行结果。
2,在一个函数内定义了一个与变量名相同的局部变量(形参)时,局部变量有效,而全局变量在该函数内不起作用。