据我所知,两个变量可以在两个不同的函数中声明为同名.我们如何在已在全局范围内声明的函数中声明变量?
这称为变量阴影.在C++中,您可以使用范围解析运算符::
从块内部引用全局变量.C语言没有这个,但是您也可以使用以下技术来访问全局变量:
#includeint a = 100; int main(void) { int a = 200; printf("%d\n", a); // prints 200 // anonymous block used to refer to global a { extern int a; printf("%d\n", a); // prints 100 } return 0; }
即使这是可能的,但要小心,它可能会使其他程序员感到困惑,即它违反了"不要聪明"的原则.
对于C ++,您始终可以使用解析运算符来指定您要谈论的范围(::
)
但是,在C语言中,规则是在更具体的范围内使用变量。
int num = 5; int main() { printf("%d\n", num); int num = 3; printf("%d\n", num); return 0; }
版画
5 3