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

怎么可能有两个具有相同名称的变量 - 一个是全局的,另一个是本地的?

如何解决《怎么可能有两个具有相同名称的变量-一个是全局的,另一个是本地的?》经验,为你挑选了2个好方法。

据我所知,两个变量可以在两个不同的函数中声明为同名.我们如何在已在全局范围内声明的函数中声明变量?



1> Grzegorz Szp..:

这称为变量阴影.在C++中,您可以使用范围解析运算符::从块内部引用全局变量.C语言没有这个,但是您也可以使用以下技术来访问全局变量:

#include 

int a = 100;

int main(void)
{      
    int a = 200;
    printf("%d\n", a); // prints 200

    // anonymous block used to refer to global a
    {
        extern int a;
        printf("%d\n", a); // prints 100
    }
    return 0;
}

即使这是可能的,但要小心,它可能会使其他程序员感到困惑,即它违反了"不要聪明"的原则.



2> Sanchke Dell..:

对于C ++,您始终可以使用解析运算符来指定您要谈论的范围(::

但是,在C语言中,规则是在更具体的范围内使用变量。

int num = 5;
int main()
{
     printf("%d\n", num);
     int num = 3;
     printf("%d\n", num);
     return 0;
}

版画

5
3

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