精华内容
下载资源
问答
  • 理解全局变量和局部变量 1.定义的函数内部的变量名如果是第一次出现, 且在=符号前,那么就可以认为是被定义为局部变量。在这种情况下,不论全局变量中是否用到该变量名,函数中使用的都是局部变量。例如: num =...
  • 主要涉及了java中的局部变量和全局变量,就二者的含义、生存时间和创建位置作了介绍,需要的朋友可以参考下。
  • 本篇文章是对在C语言中局部变量全局变量在内存中的存放位置进行了详细的分析介绍,需要的朋友参考下
  • c#局部变量和全局变量

    千次阅读 2020-07-29 20:02:49
    局部变量:声明在函数体内的变量,称之为局部变量。 using System; namespace MSN { class MainClass { int Add(int num1, int num2) { int sum;//局部变量 sum = num1 + num2; return sum; } public...

    局部变量:声明在函数体内的变量,称之为局部变量。

    using System;
    
    namespace MSN
    {
        class MainClass
        {
            int Add(int num1, int num2)
            {
    
                int sum;//局部变量
                sum = num1 + num2;
    
                return sum;
            }
    
            public static void Main(string[] args)
            {
                
                Console.WriteLine("Hello World!");
            }
        }
    }
    

    局部变量的声明范围容易产生歧义

    情况一:变量包含产生歧义

    根据变量的作用域遵循的原则(局部变量存在于声明该变量的块语句或方法结束的右花括号({})之前的作用域内),第一个变量j是在for循环开始前定义的,它的作用域是Main()方法;第二个变量的作用域是在for循环;第一个变量j的作用域包含了第二个j的作用域。对编译器来说会存在歧义,因为编译器无法区分这两个变量,所以不允许声明第2个 变量。

    public static void Main(string[] args)
    {
        int j = 20;//在Main中定义j为全局变量
        for(int i=0; i<10; i++)
        {
            int j = 30;//在for循环中定义j为局部变量,但两者同为Main中,产生了包含与被包含的关系,顾报错。
            Console.WriteLine(j);
        }
    }

    情况二: 变量升级为“类级变量”

    C#在变量之间有一个基本的区分,类级别声明的变量看作字段(成员变量),而方法中声明的变量看作局部变量。

    eg:

    class Program
    {
        //类的成员字段
        public int j = 20;//在Main外声明了一个类级变量
        //类的成员方法
        static void Main(string[] args)
        {
            int j = 30;//在Main函数中定义了一个Main中的变量
            Console.WriteLine(j);//执行主函数Main,打印Main中的j
            return;
        }
    }

    情况三 :主函数中引用类级变量

    对于情况二,第一个j通过public定义到Main函数之前,“升级”为类级变量(此时属于局部变量),通过下面的这种方法可以实现对类级变量的应用。

    eg:

    class Program
    {
        public int j = 20;
        static void Main(string[] args)
        {
            int j = 30;
            Console.WriteLine(j);
            Program obj = new Program();//new创建对象
            Console.WriteLine("类级变量是:" + obj.j);//调用方法,引用类级变量j
            return;
        }
    }

    情况四 :static声明引入类级变量

    如果选择将字段声明为 static,这时调用时可以直接引入类级变量。

    eg:

    class Program
    {
        static int j = 20;//static声明
        static void Main(string[] args)
        {
            int j = 30;
            Console.WriteLine(j);
            //Program obj = new Program();
            Console.WriteLine("类级变量是:" + Program.j);//可直接调用
            return;
        }
    }
    

     

    全局变量

    很遗憾! C#中不存在全局方法和变量,所有的变量和方法都包含在类的定义之中!

    展开全文
  • 局部变量和全局变量,以及作用范围

    万次阅读 多人点赞 2018-11-11 13:56:55
    变量按存储区域分:全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域,局部变量存放在内存的栈区。 变量按作用域分:  全局变量:在整个工程文件内都有效;“在函数外定义的变量”,即从定义变量...

           在写工程文件的时候,犯了一个基础性的错误,基础不牢,地动山摇。所以通过查阅资料回顾了一些相关知识,并记录下来。防止以后再发生这种惨案。

    变量按存储区域分:全局变量、静态全局变量和静态局部变量都存放在内存的静态存储区域,局部变量存放在内存的栈区

    变量按作用域分:

    1.     全局变量:整个工程文件内都有效;“在函数外定义的变量”,即从定义变量的位置到本源文件结束都有效。由于同一文件中的所有函数都能引用全局变量的值,因此如果在一个函数中改变了全局变量的值, 就能影响到其他函数中全局变量的值。
    2.     静态全局变量:只在定义它的文件内有效,效果和全局变量一样,不过就在本文件内部;
    3.     静态局部变量:只在定义它的函数内有效,只是程序仅分配一次内存,函数返回后,该变量不会消失;静态局部变量的生存期虽然为整个工程,但是其作用仍与局部变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。     
    4.   局部变量:在定义它的函数内有效,但是函数返回后失效。“在函数内定义的变量”,即在一个函数内部定义的变量,只在本函数范围内有效。

    注意:全局变量和静态变量如果没有手工初始化,则由编译器初始化为0。局部变量的值不可知。

    静态局部变量全局变量最明显的区别就在于:全局变量在其定义后所有函数都能用,但是静态局部变量只能在一个函数里面用。

    形参变量 :  只在被调用期间才分配内存单元,调用结束立即释放。

          在做工程的时候,我将全局变量传入函数的形参中,没注意将形参和全局变量同名了,导致全局的变量的值一直没有改变,错误的认为,编译器问题。。。。。。-_-|| 哈哈哈,论菜鸟是怎样炼成的。写个相似的代码,记录一下这个错误。

    #include "stdio.h"
    int Max = 1;
    void add(int Max)
    {
        Max = 2;
    }
    
    int main()
    {
    	add(Max);
    	printf("Max = %d",Max);
    	getchar();
    
    	return 0;
    }

    进入函数后,形参的优先级要高于全局变量了,且函数执行完后,形参释放。这时候对代码进行如下的修改,才能得到想要的效果。地址传参,要么有返回值赋值的方式。

    #include "stdio.h"
    int Max = 1;
    void add(int *Max)
    {
        *Max = 2;
    }
    
    int main()
    {
    	add(&Max);
    	printf("Max = %d",Max);
    	getchar();
    
    	return 0;
    }

    记录一下这个不好的习惯,变量命名要规矩,不能出现歧义性。

    展开全文
  • 局部变量和全局变量的作用域

    千次阅读 2019-06-30 19:10:34
    局部变量:在函数内部定义的变量,只在函数内部起作用,函数执行结束,变量会自动删除 即在一个函数内部定义的变量,只在本函数范围内有效 全局变量:“在函数外定义的变量”,即从定义变量的位置到本源文件结束都...

    局部变量:在函数内部定义的变量,只在函数内部起作用,函数执行结束,变量会自动删除
    即在一个函数内部定义的变量,只在本函数范围内有效
    全局变量:“在函数外定义的变量”,即从定义变量的位置到本源文件结束都有效
    即可以被程序所有对象或者函数引用  
    当有外部变量时,main函数中的同名变量就是全局变量。如果没有外部变量,main函数里的变量依然是局部变量
    或者也可以直接在函数内部声明变量为全局变量

    目的:增加函数间数据联系的渠道。由于同一文件中的所有函数都能引用全局变量的值
    因此如果在一个函数中改变了全局变量的值,就能影响到其他函数中全局变量的值,相当于各个函数之间有直接的传递渠道

    a = 1
    print('out: ',id(a))查看变量的id
    def fun():
        global a
        a = 5
        print('in: ',id(a))
    fun()
    print(a)
    print(id(a))
    id是查看变量在内存中存放区域的编号
    

    在这里插入图片描述
    在这里插入图片描述
    此时函数内部定义的a是全局变量,所有的输出均为全局变量的信息
    在这里插入图片描述
    在这里插入图片描述
    此时函数外面的a是全局变量,所有的输出是全局变量的信息,局部变量只在函数内部起作用

    展开全文
  • Python局部变量和全局变量区别

    千次阅读 2018-05-29 15:31:52
    全局变量:在模块内、在所有函数外面、在class外面,这就是全局变量 局部变量: 在函数内、在class的方法内(未加self修饰),这就是局部变量 2. 如何使用: 在def中,我们可以定义一个局部变量,该变量仅仅在...

    1. 定义

    全局变量:在模块内、在所有函数外面、在class外面,这就是全局变量
    局部变量: 在函数内、在class的方法内(未加self修饰),这就是局部变量

    2. 如何使用:

    在def中,我们可以定义一个局部变量,该变量仅仅在函数体中有生存期,出了这个函数体,变量就不能使用了。

    def fun():
        a = 10
        print(a)
        return a + 100
    print(fun())

    输出:

    10
    110

    也就是说我们在函数体内使用都是局部变量。

    问题:

    APPLY = 100 # 全局变量
    def fun():
        a = 10 # 局部变量
        return a + 100
    print(APPLY)  # 可以正常输出全局变量的值
    #print(a)  # 出现错误: name 'a' is not defined 试图在函数体外获取一个局部变量的值不行

    输出:

    100

    表示我们在程序外部是无法直接访问一个局部变量的。

    如何解决:

    a = None
    def fun():
        global a   # 不能直接对global a = 20 直接赋值,相当于在函数定义的时候进行赋值,但是此时变量还没有初始化,未开辟内存?所以需要分开来写
        a = 20
    print(a) # None
    fun()  # 调用fun使用全局变量a
    print(a)  # 进行了修改了 20

    输出:

    None
    20

    参考文章:
    1. 莫凡python教程
    2. 为什么在python函数定义中不能给全局变量赋值?
    3. python变量(全局变量,局部变量,类变量,实例变量)
    4. ipython笔记

    展开全文
  • java中的局部变量和全局变量

    万次阅读 多人点赞 2017-08-18 15:09:10
    Java变量 java中主要有如下几种类型的变量: ...一、局部变量 ...只在特定的过程或函数中可以...局部变量可以和全局变量重名,但是局部变量会屏蔽全局变量。在函数内引用这个变量时,会用到同名的局部变量,而不会
  • python的 局部变量和全局变量

    万次阅读 多人点赞 2017-07-31 19:12:06
    全局变量:所有函数之外定义的变量局部变量:函数内部定义的变量 或者代码块里的变量1....如果这个变量名字全部变量名字相同,那么局部变量名字会覆盖全局变量名字。#[demo1] num = 100 def func(): newVa
  • 局部变量和全局变量的区别

    千次阅读 2020-04-29 13:54:35
    1.作用域不同:全局变量的作用域为整个程序,而局部变量的作用域为当前函数或循环 2.内存存储方式不同:全局变量存储在全局数据区中,局部变量存储在栈区 3.生命周期不同:全局变量的生命周期和主程序一样,随程序...
  • C语言中的局部变量和全局变量

    千次阅读 多人点赞 2019-03-17 16:25:02
    我们按照变量的作用域范围可以把变量划分为局部变量和全局变量。 二.局部变量 1.局部变量出现在三种地方, (1)在函数的开头定义的变量。 (2) 在函数内的复合语句内定义。 (3)形式参数 在一个函数内部定义的变量只在...
  • python的局部变量和全局变量区别

    千次阅读 2018-01-16 15:37:59
    全局变量:所有函数之外定义的变量 局部变量:函数内部定义的变量 或者代码块里的变量 ...如果这个变量名字全部变量名字相同,那么局部变量名字会覆盖全局变量名字。 #[demo1] num = 100 def fu
  • C语言中局部变量和全局变量 变量的存储类别(static,extern,auto,register)   局部变量和全局变量 在讨论函数的形参变量时曾经提到,形参变量只在被调用期间才分配内存单元,调用结束立即释放。这一点表明形参...
  • 一、首先简要介绍局部变量和全局变量区别 (1)作用域 全局变量具有全局作用域,适用于所有源文件。但在不包含全局变量定义的文件中,需使用extern关键字声明这个全局变量后,方可正常使用。 静态全局变量也具有...
  • 局部变量和全局变量以及成员变量的区别

    万次阅读 多人点赞 2017-07-13 20:00:53
     // 写在类声明的大括号中的变量, 我们称之为 成员变量(属性, 实例变量)   // 成员变量只能通过对象来访问   // 注意: 成员变量不能离开类, 离开类之后就不是成员变量 成员变量不能在定义的同时进行...
  • 关于局部变量和全局变量运行快慢

    千次阅读 2020-04-06 19:09:16
    迭代方法,我定义全局变量和局部变量next指针的运行时间是不同的。 全局变量是24ms,局部变量是花了8ms。 一开始我想的是局部变量的话,创建销毁的代价不想承担(调用构造函数和析构函数),但是实际而言,这点代价...
  • 一:局部变量和全局变量 局部变量: 定义在函数内部的变量称为局部变量(函数的形参也是局部变量),局部变量只能在函数内部使用,只有在函数调用时才能够被创建,在函数调用之后会动销毁。 全局变量 定义在函数外部...
  • 局部变量和全局变量

    千次阅读 2020-04-21 00:09:29
    全局变量:跨网页使用,且能多次使用(局部变量只用1次) 使用局部变量传参 如图,显然需要计算总价,尽可能命名每个元件。 1、添加变量 首先在操作的时候,指定目标为总价 接着添加变量和表达式 结果展示: 使用...
  • 局部变量和全局变量总汇,希望对大家有帮助!
  • Axure9 局部变量和全局变量

    千次阅读 2020-10-10 17:51:27
    3、效果: ** 二、全局变量 ** 1、全局变量前几步同上局部变量。 2、新建一个页面,在新建页面内添加需要的文本框; 3、在局部变量的页面上,给提交按钮增加交互样式,在单击的情况下,添加动作,设置变量值。 添加...
  • 静态局部变量和全局变量的区别!

    千次阅读 多人点赞 2017-09-09 20:45:33
    静态局部变量和全局变量的区别!
  • x=10 #若是局部变量赋值与全局变量相同 此时用的是局部变量,因为当局部变量和全局变量具有相同的变量名时 全局变量被隐藏了 return x print(f())#结果是10 x=5 def f(): x=10*x #报错 未被赋值的引用错误 是....
  • SQL中的局部变量和全局变量

    千次阅读 2018-10-17 20:26:23
    在SQL中,我们常常使用临时表来存储临时结果,对于结果是一个集合的情况,这种方法非常实用,但当结果仅仅是...当然MS SQL Server的全局变量也很有用。 局部变量 声明:DECLARE @local_variable data_type @local...
  • 局部变量:指在函数内部声明的变量 全局变量:指在所有函数外部定义的变量 测试 int a=0;//全局变量 int function() { int b=0;//局部变量 a++; b++; printf("%d %d\r\n",a,b); return 0; } 在keil5中...
  • 局部变量和全局变量的初始化

    千次阅读 2018-05-15 09:09:41
    定义局部变量,其实就是在栈中通过移动栈指针来给程序提供一个内存空间这个局部变量名绑定。因为这段内存空间在栈上,而栈内存是反复使用的(脏的,上次用完没清零的),所以说使用栈来实现的局部变量定义时如果不...
  • 局部变量和全局变量同名的情况

    千次阅读 2017-04-21 10:23:37
    根据规定,在main函数中的局部变量会屏蔽全局变量,因此输出的结果是整型变量a。 如果想输出全局变量,需要在变量前加上 作用域运算符”::“ ,如下所示: cout; // 输出局部变量a cout : :a ; // 输出全局...
  • 全局变量a"; function myfun(){ var a = "局部变量a"; alert(a); } &lt;/script&gt; &lt;div&gt; &lt;/div&gt; &lt;script&gt; myfun(); alert(a...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 378,780
精华内容 151,512
关键字:

局部变量和全局变量