可以重名
在C语言中, 局部变量指的是定义在函数内的变量, 全局变量指的是定义在函数外的变量
他们在程序中的使用方法是不同的, 当重名时, 局部变量在其所在的作用域内具有更高的优先级, 会覆盖或者说隐藏同名的全局变量
具体来说:
局部变量的生命周期只在函数内部,如果出了函数,局部变量就会销毁
全局变量的生命周期在程序的整个执行的过程中都是可见的,程序执行完成后,则销毁
当在函数中访问一个变量时, 编译器首先会在函数内查找变量,如果找到了,则使用局部变量, 如果没找到,则会在函数外部, 找这个变量, 直到找到该变量, 或者到达了最顶层的全局作用域
如果重名, 会带来一些潜在的问题, 为了避免数据的混淆,通常时不建议局部变量和全局变量重名的, 清晰的变量名,可以反应对应的意义。
#include <stdio.h>
int a = 10;
void test()
{
int a = 20;
printf("%d\n", a);
}
int main()
{
printf("%d\n", a);
test();
return 0;
}