gpt4 book ai didi

c - 当全局变量和局部变量同名时访问全局变量

转载 作者:行者123 更新时间:2023-12-02 15:08:16 25 4
gpt4 key购买 nike

我对下面的代码有一些疑问

  #include<stdio.h>
int i=6;
int main()
{
int i=4;
{
extern int i;
printf("%d",i); //prints 6
}
printf("%d",i); //prints 4
}

我们知道extern关键字表示编译器,变量在外部的某个地方。所以问题是为什么 extern 关键字访问全局 i 变量而不是主函数内的 i 变量?我想这一定是矛盾的,因为这两个变量都可以作为全局变量提供给内部大括号。那么 extern 关键字是访问函数外部的变量还是也访问大括号外部的变量。

最佳答案

extern 并不意味着在当前作用域之外,而是意味着具有外部链接的对象。自动变量永远不会有外部链接,因此您的声明 extern int i 不可能引用它。因此它隐藏了它,就像自动变量隐藏全局一样。

关于c - 当全局变量和局部变量同名时访问全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10944863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com