精华内容
下载资源
问答
  • 静态局部变量动态局部变量区别

    千次阅读 2020-05-13 10:03:05
    1.静态局部变量属于静态存储类别,在静态存储区分配存储单元,在整个运行期间不释放。 而自动变量(动态局部变量)属于动态存储类别,占动态存储空间,函数调用后释放 2.静态局部变量在编译时赋初值,程序运次时已经...

    静态局部变量和动态局部变量区别:

    1.静态局部变量属于静态存储类别,在静态存储区分配存储单元,在整个运行期间都不释放。
    而自动变量(动态局部变量)属于动态存储类别,占动态存储空间,函数调用后释放
    2.静态局部变量在编译时赋初值,程序运次时已经有初值,以后每次调用函数不再重新赋初值而只是保留上次函数调用结束时的值。
    3.静态局部变量编译时赋初值默认是0
    而自动变量,如果不赋初值则它的值是不确定的值。
    4.静态局部变量在函数调用结束后仍然存在,但其他函数不能引用它。

    如果用static修饰全局变量,那么该全局变量不能被其他文件引用。
    不能再被extern(extern和static都是修饰符)
    如果用static修饰函数,那么该函数本文件内可以引用而其他文件不能引用。

    展开全文
  • 区分静态变量、动态变量、内部变量(局部变量)、外部变量(全局变量)静态变量、动态变量、内部变量(局部变量)、外部变量(全局变量)变量的分类来看 静态变量、动态变量、内部变量(局部变量)、外部变量(全局...

    区分静态变量、动态变量、内部变量(局部变量)、外部变量(全局变量)

    静态变量、动态变量、内部变量(局部变量)、外部变量(全局变量)

    文章参考:https://blog.csdn.net/21aspnet/article/details/2560072
    文章参考:https://blog.csdn.net/u013921430/article/details/79279114

    变量的分类来看

    变量分类

    1. 作用域分类
      局部变量(默认是自动局部变量)
      1. 定义:在一个函数内部定义的变量(包括函数形参)
      2. 有效范围:一直在本函数有效
      3. 变量存储:栈内存,函数结束之后自动销毁
      4. 静态局部变量:存储在静态存储区,作用域依旧在函数体内部。每次对其修改都会被保存下来。
      ** 全局变量 **
      1. 定义:在函数外部定义的变量,可为本源文件中其他函数使用
      2. 有效范围:从定义变量的位置开始到本源文件的结束
      3. 变量存储:存储在静态存储区域(静态内存)
      4. 可被工程项目其他文件的 extern 声明之后调用,对其每次修改都会进行保存
      5. 静态全局变量:不能被其他源文件使用,只能本源文件使用,并且每次修改会被保存
    2. 生存周期分类
      静态存储方式——程序运行期间分配固定的存储空间的方式
      动态存储方式——程序运行期间根据需要进行的动态分配空间的方式
      又可分为
      1. auto(自动)——默认,数据存储在动态存储
      2. static(静态)——函数在调用结束之后会保存本次调用的数值
      3. register(寄存器)——在声明动态局部变量或者函数形参时,可将变量声明为register,这样编译系统就会为变量分配一个寄存器而不是内存空间,通过这种方式可提升对某些局部变量频繁调用的程序的性能。(寄存器运算速度远高于内存)
      4. extern (外部)——扩展全局变量的作用域
    展开全文
  • python全局变量-局部变量区别及用法

    万次阅读 多人点赞 2017-11-13 11:12:36
    python里面全局变量和局部变量的区别就常用情况

    对于很多初学的同学,对全局和局部变量容易混淆,看看下面给大家的讲解相信都应该明白

     

    两者的区别了。

     

    定义:

    全局变量:在模块内、在所有函数的外面、在class外面

    局部变量:在函数内、在class的方法内

     

    下面来看看例子

    一、函数内部调用全局变量

     

    a="hello"  #全局变量a
    def test():
        global a#调用全局变量a
        b =a     #test方法里之后再调用a时,都是全局的a
        print(b,a)
    test()

     

    在test函数里调用全局变量a,看看运行后的结果


    运行后都是全局变量的值hello

    二、函数内部使用与全局变量同名的局部变量

     

    a="hello"  #全局变量a
    def test():
       
    a="hell0 local" #定义了一个局部变量a
       
    b =a     #test方法里之后再调用a时,都是局部的a
       
    print(b+",",a)
    test()

     

    这里在函数test里面再定义了一个a,这个a就为局部变量了,之后在test里调用的a全都是局部的a。看看运行结果:

     

    三、函数内部修改全局变量值

     

    a="hello"  #全局变量a
    def test():
        global a
        a="hell0 global" #修改全局变量a的值
        b =a     #test方法之里后再调用a时,都是全局的a
        print(b+",",a)
    test()

     

    在函数test里面先声明用的是全局的a,然后对a进行修改,就等于是修改了全局变量a的值。

    看看运行结果:

     

       注:在方法内部的变量是在=号前面的,那肯定是局部变量。如果是第一次出现在=号后

     

    面的,那肯定是调用的全局变量;全局变量可以在函数里面调用,局部变量只能在对应的函

     

    数里面调用,在该函数外面任何地方都无法被调用。

     

    有问题加QQ群交流610845268

    展开全文
  • 其中面向对象语言主要体现三个特征:封装性、继承、动态 ; 类的定义:类声明和类体。基本格式如下: class 类名{ 类体 } 特点: 1、类是Java程序的基本要素,一个Java应用程序就是由若干个类所构成; 2、类...

    编程语言的三大发展阶段:面向机器语言、面向过程语言、面向对象语言 ;

    其中面向对象语言主要体现三个特征:封装性、继承、动态 ;

    类的定义:类声明和类体。基本格式如下:

    class 类名{

       类体

    }

    特点:

    1、类是Java程序的基本要素,一个Java应用程序就是由若干个类所构成;

    2、类声明的变量称为对象变量,也简称 对象 ;

    3、class 关键字是用来定义类 ;

    4、类的目的是抽象出一类事物共有的属性和行为,并用一定的语法格式来描述所抽象出的属性和行为;

    4、类名必须是合法的Java标识符;

    Java标识符详细说明:(以及中文标识符的说明)

    https://blog.csdn.net/LagerSwan/article/details/104081548


    类的声明:

    如下所示:

    class Number {

    .....

    }

    class 数字 {

    .....

    }

    其中 class Number 与 class 数字 称为类的声明,而 Number 和 数字 则为类名 ;


    类体,即 { } 中的内容:

    类体的内容由如下两部分构成:

    • 变量的声明:用来存储属性的值 ;(体现了对象的属性)
    • 方法的定义:方法可以对类中声明的变量进行操作;(体现了对象的行为)

    如下代码演示:

    public class Class_Test {
    	int number = 10;
    	double numberd = 11.111;
    	double TestDouble() {
    		double numbers = 100 ;
    		numbers += numberd;
    		return numbers;
    	}
    	public static void main(String[] args) {
    		Class_Test test = new Class_Test();
    		System.out.println(test.TestDouble());
    	}
    }

    在以上代码中,声明了一个类 Class_Test ,两个变量 number 与 numberd ,一个方法 TestDouble() ,一个主方法 main () ;


    成员变量的定义:

    一、成员变量的类型:

    成员变量的类型可以是Java中的任何一种数据类型,包括了基本数据类型:整形、浮点型、逻辑类型、字符类型 ;引用类型中的:数组、对象和接口;  

    如下代码演示:

    public class Class_Test {
    
    	public static void main(String[] args) {
    		
    		//成员变量的说明
    		//基本数据类型的成员变量
    		int testt = 11 ;
    		float testf = 11.111f ;
    		double testd = 11.11111 ;
    		//引用类型的变量
    		int a [] ;
    		Class_Test test ;
    		
    	}
    }

    在以上代码中,成员变量:testt,testf,testd 是基本数据类型的变量;a [ ] ,test是引用类型的变量,a [ ] 为数组的变量,test 为类声明的变量,即类对象;

    二、成员变量的有效范围:

    成员变量在整个类内都是有效的,其有效性与它在类体中声明的先后位置是不关的;

    如下代码演示:   最终输出: 110

    public class Class_Test {
    	
    	//成员变量的有效范围:
    	int number = 11 ;
    	int Int_Test(){
    		int int1 = number * digit ;
    		return int1;
    	}
    	int digit = 10 ;
    
    	public static void main(String[] args) {
    		//类体的说明
    		Class_Test test = new Class_Test();
    		System.out.println(test.Int_Test());	
    	}
    }
    

    不建议大家这样编写程序,当代码量多时,对代码的可读性有一定的影响,建议先声明成员变量,再定义方法;

    三、成员变量的编写风格:

    建议大家在声明成员变量时,变量的名字使用驼峰规则,即变量名由多个单词组成时,从第二个单词开始的其他单词的首字母大学;如:computerArea 、ClassExceptionShow 


    方法的使用:

    在类体中,方法的定义包括两部分:方法头、方法体 ;  一般格式如下:

    方法头 {

       方法体

    }

    一、方法头说明

    方法头由方法的类型、名称、名称后面的 () 以及 ()里面的参数列表所构成;

    如下代码演示:

    //无参数的方法头
    double testd (){
        return 11.111;
    }
    
    //有参数的方法头, x 和 y 即为参数
    double testd (double x,double y){
        return x+y;
    }

    二、方法体说明:

    方法体即 方法()后面的 { } 以及 { } 里面的内容;

    在方法体中声明的变量为局部变量,而不是成员变量,局部变量只在方法体内有效,而且与声明时的前后位置有关;

    如下代码演示:

    double testd = 10 ;
    double testd (double x,double y){      //参数 x,y是局部变量
       double sum;                         //参数 sum 是局部变量
       sum = x + y ;
    
       if(sum>x){
           sum += testd ;         //参数 testd 是成员变量(全局变量)
    }
    
        return sum;        //return 语句,返回 sum 的值
    }

    局部变量的介绍:

    1、局部变量不同与成员变量,局部变量只在方法中有效,而且与其声明的位置顺序有关;

    2、若局部变量声明在一个复合语句中,那么该局部变量的有效范围只在复合语句中有效;

    double testd (double x,double y){      //参数 x,y是局部变量
    	   double sum;                         //参数 sum 是局部变量
    	   sum = x + y ;
    	   if(sum != 0){
    	       int ints = 1;        // ints 为复合语句中的局部变量
    	       sum += ints ;
    	}
            double bottom = 1.1;
            bottom += ints ;         //程序报错:ints cannot be resolved to a variable
    	    return sum;
    	}

    3、若局部变量声明在一个循环语句中,那么该局部变量的有效范围只在循环语句中有效;和以上复合语句是一样的;


    总结:成员变量与局部变量的区别

    1、局部变量不同与成员变量,局部变量只在方法中有效,而成员变量在整个类中都有效;

    2、局部变量与其声明的位置顺序有关,而成员变量与其声明的位置顺序无关;

    3、若局部变量的名字和成员变量的名字相同,那么成员变量会被隐藏,即在方法体中成员变量暂时是无效的,如下代码演示:

    class Test_Variable {
        int x = 10 , y ;
       void tests () {
          int x = 5 ;
          y = x + 10 ; //y的值为 15 ,而不是20,此时成员变量 x = 10 在该方法体中,暂时失效;
       }
    
    }

    4、当想使用方法中被隐藏的成员变量,可以使用关键字 this 进行调用,如下代码演示:

    class Test_Variable {
        int x = 10 , y ;
       void tests () {
          int x = 5 ;
          y = this.x + 10 ; //此时 y 的值为 20 ,而不是15,this.x调用的为成员变量 x = 10 ;
       }
    
    }

    5、成员变量有默认值,而局部变量没有默认值,因此在使用局部变量时,要确保该局部变量是有初始值的,否则程序报错;

    class Test_Variable {
    
               int  y ;
    	   void tests () {
    	      int x;       //报错:The local variable x may not have been initialized
    	      y = x + 10 ; 
    	   }
    
    }

     

     

     

    展开全文
  • 对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。 2、如何引用一个已经定义过的全局变量...
  • 什么全局变量,局部变量,静态局部变量,静态全局变量 到这里,我们就可以很容易区分上面的变量类型了。实际上这里只是换了一种说法: 全局:具有文件作用域的变量 静态:具有静态存储期或内部链接属性 局部:具有...
  • 普通局部变量与static局部变量的区别 内存分配和释放 1、普通局部变量只有执行到变量定义的语句的时候才分配空间。 2、static局部变量在编译阶段(函数还没有执行),变量的空间已经分配。 3、普通局部变量离开作用...
  • 之前在项目的存储过程中发现有通过 `DECLARE` 关键字定义的变量如`DECLARE cnt INT DEFAULT 0;`,还有形如 `@count` 这样的变量,存储过程中拿过来直接就进行设置,像这样`set @count=1;`,这两种类型的变量究竟有...
  • 在一个函数内部定义的变量(包括函数形参)是局部变量。 全局变量 在函数外定义的变量是局部变量。 静态变量 静态全局变量 在全局变量...
  • for循环中的变量是局部变量还是全局变量?

    万次阅读 热门讨论 2019-08-25 20:39:08
    在for/while等循环内部定义的变量属于局部变量,当for循环结束以后,局部变量就会被销毁,此时如果调用这个变量就会提示变量未定义,就会报错。而变量是指向存储空间的,因此虽然变量消失了,但内存中存储信息的地址...
  • JavaScript变量 JavaScript使用var关键字声明变量。声明变量的5种常规用法如下: var a; //声明单个变量。var关键字与变量名之间以空格分隔 var b, c; //声明多个变量变量之间以逗号分隔 var d = 1; //声明...
  • Python中都全局变量和局部变量

    千次阅读 2020-10-31 17:14:44
    局部变量:函数体之内定义的变量 下述代码中,t是全局变量,m是局部变量 t = 1 def func(x): m = 2 return x//m 规则 1. 局部变量和全局变量是不同的变量,即使变量名相同 局部变量是函数中的占位符,与...
  • C语言未初始化的局部变量是多少?

    千次阅读 2020-07-17 17:41:15
    C语言中,未初始化的局部变量到底是多少? 答案往往是: 与编译器有关。 可能但不保证初始化为0。 未确定。 总之,全部是些一本正经的形而上答案,这很令人讨厌。 但凡一些人给你滔滔不绝地扯编译器,C库,...
  • UINT8 acc_tab_sta = acc->acc_tab_sta; static void hmi_adas_root_callback_on_status(ndm_node_t *self, ndm_evt_t *in_status) { UINT8 acc_tab_sta = 0; switch (NodeMsgGetEvent(in_status)) ...
  • 今天被问到了一个问题:如何让请求的类延迟释放如果要延迟释放或者在程序整个生命周期存在可以考虑两种方式,一是定义一个静态变量,二是用单例。用单例本质上用的是静态变量。单例的写法如下:+ (instancetype)...
  • 什么是全局变量和局部变量 全局变量:常常定义在函数外部,拥有全局作用域,即在 JavaScript 代码的任何地方可以访问。 局部变量:定义在函数内部,只能在函数中使用的变量,作用范围是从函数开始到结尾,即在{}...
  • 局部变量

    千次阅读 2020-09-07 12:22:00
    C语言提供了局部变量的定义,局部变量也称为:内部变量。局部变量就是定义在大括号{ }包含的代码块内,例如: if(){ } if(){ }else{} for(){ } while() { } do{ } while(); switch(){ } 还有函数的定义,例如...
  • 变量不仅可以直接通过类名+点操作符+变量名来操作,也可以通过类的实例+点操作符+变量来操作,大多数情况下,采用前者操作方式,一来不能够有效地使用该变量,二来能够表示该变量就是类变量。 2、...
  • 局部变量:只在某个范围有效(例如方法中)。 类变量:有效性主要和变量前的修饰符有关,例如private修饰就只对此类有效,public对所有包有效。 存储位置: 成员变量:随着对象的创建而创建,对象消失则此变量也...
  • python中全局变量和局部变量详解

    万次阅读 多人点赞 2018-11-13 12:18:46
    python中全局变量和局部变量的最大区别在于局部变量只能通过函数去访问,而全局变量可以直接访问。 !!! 我们先来看一个最简单的例子,事实上这并不是一个真正的全局变量,只是在类中的一个变量。 !!! 我们...
  • Lua全局变量与局部变量

    千次阅读 2019-04-22 16:55:52
    在lua中,局部变量(变量名前加 local)与全局变量类似于C语言中的概念: print(a) --打印变量nil a=111 --全局变量(整个lua文件中都可以使用,向下的范围) do local a=0--局部变量在语句块的结束 a=1 ...
  • 按存储区域分:全局变量、静态全局变量和静态局部变量都存放在内存的全局数据区,局部变量存放在内存的栈区 按作用域分: 1、全局变量在整个工程文件内有效; 2、静态全局变量只在定义它的文件内有效; 3、...
  • main 函数内的变量是全局变量,还是局部变量

    千次阅读 多人点赞 2017-07-14 17:28:25
    main 函数内的变量是全局变量,还是局部变量
  • 成员变量和局部变量的区别

    万次阅读 多人点赞 2018-07-22 19:56:44
    成员变量和局部变量的区别  (1)在类中的位置不同  成员变量:类中方法外  局部变量:方法定义中或者方法声明上  (2)在内存中的位置不同  成员变量:在堆中  局部变量:在栈中  (3)生命周期不同  成员变量:...
  • java中的局部变量和全局变量

    万次阅读 多人点赞 2017-08-18 15:09:10
    Java变量 java中主要有如下几种类型的变量: ...一、局部变量 ...只在特定的过程或函数中可以...局部变量可以和全局变量重名,但是局部变量会屏蔽全局变量。在函数内引用这个变量时,会用到同名的局部变量,而不会
  •  按存储区域分,全局变量、静态全局变量和静态局部变量都存放在内存的静态 存储区域,局部变量存放在内存的栈区。 按作用域分,全局变量在整个工程文件内有效;静态全局变量只在定义它的 文件内有效;静态局部...
  • Axure学习日志之全局变量与局部变量

    千次阅读 2019-05-31 09:04:52
    全局变量: 顾名思义,全局,即可理解为全部软件内有效,与编程语言类似。 首先,全局变量在哪儿,这是个问题 在这 可以设置多个全局变量,加号添加,双击重命名,双击默认值设置默认值 如图建立两个全局变量...
  • C语言全局变量和局部变量总结

    千次阅读 2018-08-28 15:01:10
    函数中的局部变量,如果不专门的声明为 static存储,动态分配存储空间。数据存储在动态存储区内。函数中的形参和函数中的变量属于此类,调用该函数时候系统自动的分配空间,在函数结束的时候,释放该空间。...
  • 成员变量、类变量(静态变量)、局部变量的区别

    千次阅读 多人点赞 2017-08-03 20:31:04
    如果局部变量的名字和成员变量的名字相同, 要想在该方法中使用成员变量,必须使用关键字this [java] view plain copy class People {   String name = "类体重定义的name";
  • 成员变量和局部变量同名 在同一个作用域内不允许定义同名的多个变量。   在一个方法内,可以定义和成员变量同名的局部变量或参数,此时成员变量被屏蔽。此时如果想要访问成员变量,可以通过 this 关键字来...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 801,945
精华内容 320,778
关键字:

动态变量都是局部变量