精华内容
下载资源
问答
  • /**********************************************...*函数内部定义的局部变量与全局变量重名时,函数在使用该变量的时候会以局部变量覆盖全局变量,也就是只有局部变量会起效果。 ********************************...
    /*********************************************************************************************************
    *函数内部定义的局部变量与全局变量重名时,函数在使用该变量的时候会以局部变量覆盖全局变量,也就是只有局部变量会起效果。
    *********************************************************************************************************/
    #include <stdio.h>
    #include <stdlib.h>
    
    int n=5;
    void fun(int m)
    {
        static int n=1;
        if(m<10)
        {
            fun(m+1);
            printf("%d ",n++);//打印 1 2 3 4 5 6 7
        }
    }
    void test_print()
    {
        printf("%d\n",n);//打印5
    }
    
    int main()
    {
        int n;
        scanf("%d",&n);//输入 3
        printf("%d\n",n);//打印3
        fun(n);
        test_print();
        return 0;
    }
    

     

    展开全文
  • 局部变量全局变量重名的时候,局部会屏蔽全局变量,如果需要使用全局变量,需要使用“::"。 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而...

             当局部变量和全局变量重名的时候,局部会屏蔽全局变量,如果需要使用全局变量,需要使用“::"。

              局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 

              当全局变量与局部变量重名时,局部变量对全局变量的屏蔽就是说在运行同样名的变量时,使用的是局部变量,而不是全局变量。而且它们存放的地址不同。

    展开全文
  • 函数内部定义的局部变量与全局变量重名时,函数在使用该变量的时候会以局部变量覆盖全局变量。也就是只有局部变量会起效果。在此定义域中赋值等操作时都不会使用到全局变量。 在main函数或其他函数里定义了局部变量...

     

    1. 函数内部定义的局部变量与全局变量重名时,函数在使用该变量的时候会以局部变量覆盖全局变量。也就是只有局部变量会起效果。在此定义域中赋值等操作时都不会使用到全局变量。
    2. 在main函数或其他函数里定义了局部变量,同时同名的全局变量同时也存在,当调用一个使用了该变量的函数(该变量在此函数中无定义)时,函数会使用全局变量。而不是main或其他函数中定义的同名变量。例如
      1. #include <stdio.h>
        #include <stdlib.h>
        
        int n=5;
        void fun(int m)
        {
            int n=1;
            if(m<10)
            {
                fun(m+1);
                printf("%d ",n++);
            }
        
        }
        void print() { printf("%d\n",n); }

        /*void printm()
        {
          printf("%d\n",m)
        }*/
        int main() { int n; scanf("%d",&n); printf("%d\n",n); print(); fun(n);
         // int m=10;
        // printm(); return 0; }

        输入3时, 运行结果为: 3  5 ,1 1 1 1 1 1 1 。(以上注释掉的部分为测试使用)

    3. 当第一次输出的时候,只是调用输出了在main()函数里边定义的n,所以当输入3时,只有main里边定义的n被改变成为3,然后下一句输出n就直接输出的是上边刚刚赋值了的3。
    4. 调用print函数时输出的结果为5,虽然print函数里只有一句printf(),看似与上边的输出语句并无其他区别,但此时print函数只能得到全局变量n,虽然在main函数里有对print()函数的调用,但是print()函数与main函数还是属于两个作用域,main中定义的局部变量n并不能影响print()函数中对n的使用,所以print函数使用的还是全局变量n。
    5. 在递归函数fun()中,每次都对声明局部变量n=1,然后每次函数发生递归的时候printf()函数中都会对n进行++操作,然而输出的全是1,这是由于当函数发生递归的时候调用自己,但是每次调用printf()函数时候,都使用的是自己的局部变量n=1,并不会受上一层n的影响也不会影响到上一层的n,更不会受全局变量n=5的影响。
    6. 我们假设当无全局变量,只有函数自己定义的局部变量的时候,函数调用printm()函数输出m,看能不能输出main中定义的m的值,结果连编译都过不了,因为对于printm()函数来说,这个m到底是个啥东西啊,查找周围并没有对m的定义,(然而并不查找到人家main函数里边去)。所以对于函数来说首先是自己定义的局部变量,其次是大家共有的全局变量。即使是递归,各自层的变量之间也不会相互影响。

       

    转载于:https://www.cnblogs.com/freedom314/p/5263183.html

    展开全文
  • 局部变量优先级比全局变量优先级高,这本没什么,但若局部变量与全局变量重名,那就有的说了,看代码: var str='test'; function shuchu(){  document.write(str+'');  var str='world';  document.write...
    局部变量优先级比全局变量优先级高,这本没什么,但若局部变量与全局变量重名,那就有的说了,看代码:
    <script type="text/javascript">
    var str='test';
    function shuchu(){
        document.write(str+'<br/>');
        var str='world';
        document.write(str+'<br/>');
    }
    shuchu();
    </script>
    输出:
    undefined
    world
    原因:局部变量作用于整个作用域.
    原因解释:正因为局部变量作用于整个作用域,所以函数shuchu中的第一行document.write(str+'<br/>');中的str是用的局部变量,然而此时尚未赋值,所以会出现undefined.
    ^_^ 有点意思.
    展开全文
  • C++中局部变量可否与全局变量重名

    千次阅读 2019-01-19 14:11:31
    此问题研究的是变量的作用域的问题。一个声明将一个名字引进一个作用域;局部变量(通常在函数中定义)的作用域是...与全局变量重名局部变量可以屏蔽全局变量,如果想在块内使用全局变量需要通过作用域解析运算符...
  • 全局变量局部变量出现重名时, 在局部变量作用域内,全局变量失效
  • 局部变量能否和全局变量重名

    千次阅读 2019-09-16 09:53:33
    1、局部变量能否和全局变量重名?  答:能,局部会屏蔽全局。要用全局变量,需要使用 ":: " (域解析符)  局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。...
  • 局部变量 定义:在方法内定义的变量称为“局部变量”或...当局部变量与全局变量重名时,起作用的是局部变量。 成员变量 定义:在类体的变量部分中定义的变量,也称为字段。 区别: java中没有全局变量的定义...
  • 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,...
  • 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,...
  • 5.4 (*)变量的存储属性 ...5.4.2 局部变量与全局变量重名时 在局部变量作用域内优先处理局部变量,全局变量不起作用。 5.4.3 变量的存储类型 auto register static:在函数体内部使用时,称为静态局部
  • C++中局部变量可以和全局变量重名吗? 这是一个作用域的问题。一个声明将一个名字引进一个作用域;局部变量(通常在函数中定义)的...与全局变量重名局部变量可以屏蔽全局变量,如果想在块内使用全局变量需要通
  • 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,...
  • 局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器...
  • 局部变量可以与全局变量同名。在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。要用全局变量,需要使用"::"。 对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环...
  • 局部变量能否和全局变量重名???

    千次阅读 2015-02-22 13:17:46
    这个问题, 网上回答的都是一致的, 因为大部分只是专业性的描述答案, 并且都是对理解方面比较抽象, 以下的这些答案内容分析是个人的一些理解然后编辑而成, 如果不全面或者... 局部变量可以与全局变量同名, 在函数内引用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 519
精华内容 207
关键字:

局部变量与全局变量重名