如何在 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 中引用与全局变量同名的局部变量? [复制]的主要内容,如果未能解决你的问题,请参考以下文章