小白发问:请问为什么运行结果是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;
int main()
{
int a=7,b=5;
x=a-b;
y=a+b;
num();
printf("%d,%d\n",x,y);
return 0;
}

x和y是全局变量,main()函数中虽然做了x=a-b和y=a+b,但是后面的num()函数中重新计算了x和y的值,所以printf()函数输出的x和y的值取决于num()函数内的计算。

因为x和y是全局变量,num函数会改变x和y 的值,x=15-10=5;y=15+10=25