如果我们定义一个全局变量 int x;
和函数体内部定义了另一个变量int x;
会怎样。如何引用一个全局变量与函数体内的本地变量同名?
函数'x'内部总是引用局部变量'x'。现在,如果用户必须在非常函数内引用全局变量x,那么如何实现这一点?
如果我们定义一个全局变量 int x;
和函数体内部定义了另一个变量int x;
会怎样。如何引用一个全局变量与函数体内的本地变量同名?
函数'x'内部总是引用局部变量'x'。现在,如果用户必须在非常函数内引用全局变量x,那么如何实现这一点?
由于您的问题被标记为“C”,我将回答有关该语言。其他语言可能会提供语法糖或机制来做你想做的事。
定义使用可变存在于更大范围的名称的变量称为遮蔽:内定义阴影外一个。
下面是一个例子:
int x = 42;
int main() {
int x = 0; // Here, `x` shadows the global `x`.
printf("%d\n", x); // Prints '0'
}
在C中,没有办法来获得被遮蔽的变量的值。
在风格计划中,阴影通常被认为是一种不好的做法,因为它会让您的代码更清晰,更难以重构。
正确。请将“据我所知”更改为“In C”,因为C无法获得阴影变量。 –
感谢您的确认。 :) – RichouHunter
为什么被标记为C和Python? –
在C你不能。如果您隐藏了一个符号,那么无法访问它。 –
为什么你需要与变量相同的名字? –