如何在 C 中引用与全局变量同名的局部变量? [复制]

Posted

技术标签:

【中文标题】如何在 C 中引用与全局变量同名的局部变量? [复制]【英文标题】:how refer to a local variable share same name of a global variable in C? [duplicate] 【发布时间】:2011-08-15 04:59:48 【问题描述】:

例如

#include<stdio.h>

int foo = 100;

int bar()

    int foo;
    /* local foo = global foo, how to implemented? */
    return 0;


int main()

    int result = bar();
    return 0;

我认为在函数栏中,直接调用 foo 只会得到全局 foo。我如何参考当地的 foo?我知道在 C++ 中有这个指针。但是,C有类似的东西吗?

非常感谢!

【问题讨论】:

也许你可以参考 Ouah 的答案:***.com/questions/12183899/… 【参考方案1】:

不,通过在 bar() 中声明 foo,您将全局 foo 排除在范围之外。在 bar() 内部,当您引用 foo 时,您将获得局部变量。

【讨论】:

我试过了,看起来你是对的。那么有什么方法可以引用 bar() 中的“全局 foo”吗? 改变你的局部变量的名字是正常的解决办法 只是看起来不太优雅,但如果这是唯一的方法,我可以做到 相反,在 C 中,无法从 bar() 内部引用全局变量 foo - 至少,在局部变量 foo 的声明完成后无法引用。在 C++ 中,您可以使用 ::foo,但这在 C 中不可用。 其他回答者删除了答案,因为您询问了如何访问局部变量。 C 并不真正适合范围解析和命名空间之类的功能。只需选择一个不同的名称就是优雅的解决方案。

以上是关于如何在 C 中引用与全局变量同名的局部变量? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何引用一个已经定义过的全局变量

C语言面试考点之二

C语言面试考点之二

局部变量和全局变量的区别

C语言 若全局变量与局部变量同名,分析结果

python函数中局部变量与全局变量遵守规则