0

可能重复:
如何访问 C 中的阴影全局变量?

如何访问函数内的全局指针,包含另一个具有相同名称和类型的指针。

前任:

#include <stdio.h>

char *ptr = "Hello World";

int main(void)
{
//char ptr = 'a';
 char *ptr = "Global is over written";

printf("%s", ptr); //Here i am trying to print the value of global ptr i.e, "Hello World".

return 0;
}
4

3 回答 3

1

因为你正在做%s%c会得到“a”

你也应该知道instance member hiding它也叫shadowing.

用外行的语言你可以说:在更近的地方我们得到了变量,我们不会寻找更远的地方

如果localglobal具有相同的标识符,则本地将首先出现

如果您想了解更多有关如何在本地范围内访问全局变量的信息

在 C++ 中使用::范围解析运算符

对于 C 访问链接

于 2012-11-08T05:36:26.093 回答
0

你可以通过这种方式获得全局价值

#include <stdio.h>

char *ptr = "Hello World";
char *getGlobalPtr()
{
return ptr;
}

int main(void)
{
char ptr = 'a';
printf("%s", getGlobalPtr()); //Here i am trying to print the value of global ptr i.e, "Hello World".

return 0;
}
于 2012-11-08T05:43:58.280 回答
0

您无法访问全局变量,因为局部变量会隐藏全局变量,它们都定义在同一范围内并具有相同的名称。如果您想同时访问两者,请更改其名称。阅读有关可变阴影的更多信息

于 2012-11-08T05:41:34.283 回答