int x, y; void fun( ) { x=100, y=200; } void main() { int x=5, y=7; fun( ); printf("%d%d",x, y); } 57 200100 100200 75
局部变量和全局变量的优先级问题:在函数内,如有与全局变量同名的变量,且在作用范围内,优先使用局部变量。
代码注释及输出结果如下,如有帮助,请采纳一下,谢谢。
#include <stdio.h>
int x,y; //全局变量
void fun()
{
x = 100;
y = 200;
printf("fun:%d,%d\n",x,y); //作用域内没有x、y的局部变量定义,使用全局变量,输出全局变量
}
void main()
{
int x = 5,y = 7;
fun();
printf("main:%d,%d",x,y); //作用域内有x和y的声明,优先输出局部变量
getchar();
getchar();
}
//输出结果
//fun:100,200
//main:5,7
你既然外部已经定义了全局的x和y,main里面就不要再定义x和y了。fun函数只能修改全局变量,但你printf打印的是main函数里的x,y,自然没有效果了。