#include <stdio.h>
int x = 77;
void fn1()
{
printf("fn1(): x=%d\n", x);
}
int main()
{
int x1= 10;
if(x1>0)
{
x = 100;
x /= 2;
printf("if语句内, x=%d\n", x);
}
printf("main方法内, x=%d\n", x1);
fn1();
return 0;
}
fn1()函数输出的不是77?错在哪 请问大神们
因为全局变量所有函数共用一个,主函数改变了全局变量,调用函数也跟着变了
if里x=100变成定义局部变量x=100
int x=100
#include <stdio.h> int x = 77; void fn1() { printf("fn1(): x=%d\n", x); } int main() { int x = 10; if(x>0) { int x = 100;//注意这里,我也纠结了好一会,没有int的话就不是if里的局部变量了,而是main的局部变量 x /= 2; printf("if语句内, x=%d\n", x); } printf("main方法内, x=%d\n", x); fn1(); return 0; }
#include <stdio.h>
int x = 77;
void fn1()
{
printf("fn1(): x=%d\n", x);
}
int main()
{
int x = 10;
if(x>0)
{
int x = 100;
x /= 2;
printf("if语句内, x=%d\n", x);
}
printf("main方法内, x=%d\n", x);
fn1();
return 0;
}
全写X的话 输出的结果就是 50 50 77
int x1= 10;
if(x1>0)
这块有问题 你应该写成x 不应该写成x1,这块是考全局变量和局部变量的