当前位置:  开发笔记 > 编程语言 > 正文

C/C++中的静态作用域

如何解决《C/C++中的静态作用域》经验,为你挑选了1个好方法。

在下面的代码中,2打印出来.

int x = 1;
int f(int y)
{
    return x;
}

int main() {
    x = 2;
    printf("%d", f(0));
}

如果我们在C中有静态作用域,它会怎么样?为什么不1打印?

印花 2在这种情况下不是动态范围,是吗?

我认为在静态作用域中它应该使用最近的x到函数定义.



1> nwp..:

它确实需要最近的x,但由于你只有一个x它并不重要.

如果您将代码更改为

int x = 1;
int f(int y)
  {
    return x ;
  }

int main() {
    int x=2;       
    printf("%d", f(0));
}

所以你有2个x,全局的和当地的main你会看到1打印.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有