c - 如何在函数体内引用与局部变量同名的全局变量?

标签 c variables scope global-variables local-variables

如果我们定义一个全局变量会怎么样 int x; 并在函数体内定义另一个变量 int x; .

函数内部“x”始终引用局部变量“x”。现在,如果用户必须在函数内引用全局变量 x,如何实现这一目标?

最佳答案

Since your question is tagged "C", I'll answer about that language. Other languages may provide syntactic sugar or mechanisms to do what you want.

使用更大范围内存在的变量名称来定义变量称为遮蔽:内部定义遮蔽外部定义。

下面是一个例子:

int x = 42;

int main() {
    int x = 0; // Here, `x` shadows the global `x`.
    printf("%d\n", x); // Prints '0'
}

在 C 语言中,无法获取隐藏变量的值。

在样式计划中,阴影通常被认为是一种不好的做法,因为它会使您的代码不太清晰并且更难以重构。

关于c - 如何在函数体内引用与局部变量同名的全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46274555/

相关文章:

c - 如何从子进程访问父进程的地址空间?

c++ - 为什么要担心签名类型的 >> 中的 'undefined behavior'?

c - %*s 格式说明符 C

for循环中的Python变量赋值

git - 在 Jenkins 管道中添加 gitparameter

arrays - Node 推送变量动态

javascript - ng-show 似乎不适用于全局变量

c++ - 在 C 和 C++ 文件之间共享一个全局变量

java - 计算连续数字

c++ - 与 C++ 相比, native C 中的复数(和虚数 i)如何表示?