本帖最后由 余丽丽 于 2015-8-4 22:38 编辑
例如:#include <stdio.h> int a=20; int main(int argc, const char * argv[]) { printf("1->%d\n",a);//访问的全局变量 20 if(1) { int a;//定义了一个与全局变量同名的局部变量 a=10; printf("2->%d\n",a);//访问的局部变量 10 } printf("3->%d\n",a);//访问的全局变量 20 return 0; } 运行结果: 1->20 2->10 3->20
上面的例子可以看出: 当定义了一个与全局变量同名的局部变量的时候,在局部变量的生命周期里,优先访问局部变量。 所以说,这样做语法上没有问题,但是容易造成赋值混乱!也不利于代码的后期维护!
|