【问题标题】:how refer to a local variable share same name of a global variable in C? [duplicate]如何在 C 中引用与全局变量同名的局部变量? [复制]
【发布时间】: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有类似的东西吗?

非常感谢!

【问题讨论】:

标签: c global-variables scope local-variables


【解决方案1】:

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

【讨论】:

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