#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; }
这段代码中fn1()输出的是77,而不是10.这两个是不是都是全局变量?两个的作用范围是哪里?
你一共定义了两个函数fn1和main;int x=77在函数的外部,这个应该是全局变量,所以他的作用范围是全局
而int x=10和int x=100这两个我觉得都应该是局部变量,因为他们在函数内部。
还有就是如果一个函数内部有一个相同的变量的时候,函数内的变量优先选择,这里指的也就是局部变量了
....