精华内容
下载资源
问答
  • 局部变量特点

    2019-11-25 18:35:05
    //定义在{}里的变量就是局部变量,只能在{}里面有效 //执行到定义变量那句话,才开始分配空间,离开作用域自动释放 //作用域:变量起作用的范围 //a = 666//错误,不能在这里赋值 { i := 10 fmt...

    package main
    import “fmt”
    func test ( ) {
    a := 10
    fmt.Println ("a = ",a)
    }
    func main ( ) {
    //定义在{}里的变量就是局部变量,只能在{}里面有效
    //执行到定义变量那句话,才开始分配空间,离开作用域自动释放
    //作用域:变量起作用的范围
    //a = 666//错误,不能在这里赋值
    {
    i := 10
    fmt.Println("i = ",i)
    }
    //i = 888//错误,只能在{}里面使用
    if flag := 3;flag == 3 {
    fmt.Println("flag = ",flag)
    }
    //flag = 4 //错误
    }

    展开全文
  • 静态局部变量特点

    千次阅读 2016-06-26 22:07:15
    静态局部变量有以下特点: 该变量在全局数据区分配内存; 静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化; 静态局部变量一般在声明处初始化,如果没有显式初始化,会被...
    void fun()
    {
          static int val;
    }
    

    val的内存地址已经初始化。
    静态局部变量有以下特点:
    该变量在全局数据区分配内存;
    静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化;
    静态局部变量般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0;
    它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束;
    展开全文
  • java 局部变量特点

    2014-10-08 08:12:33
    java 局部变量特点  1 先赋值,后使用;  2 作用范围:定义开始,到定义它的代码块结束;  3 在重合的范围内,不允许俩个局部变量发生命名冲入。 ...

    java  局部变量特点

      1  先赋值,后使用;

      2  作用范围:定义开始,到定义它的代码块结束;

      3  在重合的范围内,不允许俩个局部变量发生命名冲入。

    展开全文
  • 成员变量和局部变量有什么区别?

    千次阅读 2011-05-17 17:55:00
    FAQ2.13 成员变量和局部变量有什么区别? 答: ——————————————————————————————————————————————————————————————————————...

    FAQ2.13 成员变量和局部变量有什么区别?

    答:

    ————————————————————————————————————————————————————————————————————————————————————————

    class A
    {
    int a;//成员变量
    public static void main(String[] args)
    {
    int b;//局部变量
    }
    }

    ————————————————————————————————————————————————————————————————————————————————————————

    类体由2部分构成:

    一部分是变量的定义;

    一部分是方法的定义(一个类中可以有多个方法) 在变量定义部分定义的变量叫做类的成员变量,成员变量在整个类中都有效. (全局变量应该是成员变量的俗称) 在方法体中定义的变量叫做局部变量,局部变量只在定义它的方法中有效. 成员变量又分为 实例变量 和 类变量(static静态变量).

    class One

    {

    float x; //x为实例变量

    static int y; //只要有关键字static,y为类变量

    }

    ————————————————————————————————————————————————————————————————————————————————————————

    1.成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及static修饰;两者都可以定义成final型
    2.成员变量存储在堆,局部变量存储在栈
    3.存在时间不同
    4.成员变量有默认值,(被final修饰且没有static的必须显式赋值),局部变量不会自动赋值

    ————————————————————————————————————————————————————————————————————————————————————————

    先看下面两段程序:

    程序一:
    public class Variable
    {
    int i;
    void test()
    {
       int j=8;
       if(j==i)
        System.out.println("相等");
       else
        System.out.println("不相等");
    }
    public static void main(String[] args)
    {
       Variable v=new Variable();
       v.test();
    }
    }

    程序二:
    public class Variable
    {
       void test()
    {
       int i;
       int j=8;
       if(j==i)
        System.out.println("相等");
       else
        System.out.println("不相等");
    }
    public static void main(String[] args)
    {
       Variable v=new Variable();
       v.test();
    }
    }

    ----------------------------------------------------------------------------------------------------------

    第一个程序很正常,编译时不会出错。第二个程序编译时会提示如下错误:

    D:/Program/java/test>javac Variable.java
    Variable.java:9: 可能尚未初始化变量 i
                    if(j==i)
                          ^
    1 错误

    之所以会出现这样的错误是因为:成员变量有默认值,(被final修饰且没有static的必须显式赋值),局部变量不会自动赋值

    ===========================================================

    类体分为两部分。变量定义部分所定义的变量被称为类的成员变量,在方法体中定义的变量和方法的参数都被称为局部变量

    java中成员变量和局部变量的区别

    1.成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及static修饰;两者都可以定义成final型

    2.成员变量存储在堆,局部变量存储在栈

    3.存在时间不同

    4.成员变量有默认值,(被final修饰且没有static的必须显式赋值),局部变量不会自动赋值
    -------------------------------------------------------------------------------------------------------------

    顾名思意了
    什么是局部,方法内部,块内部都是局部,执行指令退出那个局部,局部变量自动清除
    比如方法中,不用说
    块中
    {
    int i=0; //这是一个局部变量,它的作用范围就在其中
    }
    成员变量就会涉及到谁的成员,类的成员?实例的成员?
    class A{
    int i=0; //实例的成员
    static j=1;//类的成员
    }
    static 的差别,是否依赖于实例而存在
    ----------------------------------------------------------------------------------------------------------

    成员变量:作为类的成员而存在,直接存在于类中。

    局部变量:作为方法或语句块的成员而存在,存在于方法的参数列表和方法定义中。

    局部变量在使用前必须被程序员主动的初始化,和此形成对比,系统中的成员变量则会被系统提供一个默认的初始值。所以在语法上,类的成员变量能够定义后直接使用,而局部变量在定义后先要赋初值,然后才能使用。

    所有类的成员变量可以通过this来引用。成员变量又分成俩中类型:实例变量和静态变量。静态变量在定义时要使用static关键字。

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    静态变量的类型说明符是static。 静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量,例如外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。对于自动变量,它属于动态存储方式。 但是也可以用static定义它为静态自动变量,或称静态局部变量,从而成为静态存储方式。
    由此看来, 一个变量可由static进行再说明,并改变其原有的存储方式。
    1. 静态局部变量
    在局部变量的说明前再加上static说明符就构成静态局部变量。
    例如:
    static int a,b;
    static float array[5]={1,2,3,4,5};
    静态局部变量属于静态存储方式,它具有以下特点:
    (1)静态局部变量在函数内定义,但不象自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始终存在着,也就是说它的生存期为整个源程序。
    (2)静态局部变量的生存期虽然为整个源程序,但是其作用域仍与自动变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。
    (3)允许对构造类静态局部量赋初值。若未赋以初值,则由系统自动赋以0值。
    (4)对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值。而对自动变量不赋初值,则其值是不定的。 根据静态局部变量的特点,可以看出它是一种生存期为整个源程序的量。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值。因此,当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜
    —————————————————————————————————————————————————————————
    给读者一个简单直白的例子(区别静态局部变量和动态局部变量):
    ——————————************************************************************——————————
    int fun(int n)
    {
    static int f=1; /*请注意这行的修改*/ 这是 static 结果:
    f=f*n;
    return(f);
    }
    main()
    {
    int i;
    for(i=1;i<=5;i++)
    printf("%d!=%d/n",i,fun(i));
    }
    ——————————************************************************************——————————
    int fun(int n)
    {
    int f=1; /*请注意这行的修改*/ 结果是:
    这是auto 的结果
    f=f*n;
    return(f);
    }
    main()
    {
    int i;
    for(i=1;i<=5;i++)
    printf("%d!=%d/n",i,fun(i));
    }
    ————————————————————————————————————————————————————————————————
    2.静态全局变量
    全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。从以上分析可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。因此static 这个说明符在不同的地方所起的作用是不同的。应予以注意。
    静态变量
    除范围之外,变量还有存活期,在这一期间变量能够保持它们的值。在应用程序的存活期内一直保持模块级变量和公用变量的值。但是,对于 Dim 声明的局部变量以及声明局部变量的过程,仅当过程在执行时这些局部变量才存在。通常,当一个过程执行完毕,它的局部变量的值就已经不存在,而且变量所占据的内存也被释放。当下一次执行该过程时,它的所有局部变量将重新初始化。
    但可将局部变量定义成静态的,从而保留变量的值。在过程内部用 Static 关键字声明一个或多个变量,其用法和 Dim 语句完全一样:
    Static Depth
    例如,下面的函数将存储在静态变量 Accumulate 中的以前的运营总值与一个新值相加,以计算运营总值。
    Function RunningTotal (num)
    Static ApplesSold
    ApplesSold = ApplesSold + num
    RunningTotal = ApplesSold
    End Function
    如果用 Dim 而不用 Static 声明 ApplesSold,则以前的累计值不会通过调用函数保留下来,函数只会简单地返回调用它的那个相同值。
    在模块的声明段声明 ApplesSold,并使它成为模块级变量,由此也会收到同样效果。但是,这种方法一旦改变变量的范围,过程就不再对变量排他性存取。由于其它过程也可以访问和改变变量的值,所以运营总值也许不可靠,代码将更难于维护。
    声明所有的局部变量为静态变量
    为了使过程中所有的局部变量为静态变量,可在过程头的起始处加上 Static 关键字。例如:
    Static Function RunningTotal (num)
    这就使过程中的所有局部变量都变为静态,无论它们是用 Static、Dim 或 Private 声明的还是隐式声明的。可以将 Static 放在任何 Sub 或 Funtion 过程头的前面,包括事件过程和声明为 Private 的过程。

    ————————————————————————————————————————————————————————————————————————————————————————

    1.动态存储方式与静态存储方式的定义

    1)所谓静态存储方式是指在程序编译期间分配固定的存储空间的方式;

    2)所谓动态存储方式是指在程序运行期间根据需要进行动态的分配存储空间的方式。
    2.内存中用户存储空间的分配情况(分为三部分)

    1)程序区:存放程序语句

    2)静态存储区:存放全局变量,在程序开始执行时给全局变量分配存储区,程序执行完毕就释放。

    3)动态存储区:

         存放以下数据:

    ①函数形式参数。在调用函数时给形参分配存储空间;

    ②自动变量(未加static声明的局部变量);

    ③函数调用时的现场保护和返回地址等。

    栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。

    堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。

    展开全文
  • 我们都知道方法中的匿名/局部内部类是能够访问同一个方法中的局部变量的,但是为什么局部变量要加上一个final呢? 首先我们来研究一下变量生命周期的问题,局部变量的生命周期是当该方法被调用时在栈中被创建,当...
  • 成员变量和局部变量有什么区别?

    万次阅读 2011-07-19 11:16:08
    class A { int a;//成员变量 public static void main(String[] args) ...//局部变量 } }————————————————————————————————————————————————————————————
  • 静态局部变量和动态局部变量区别

    千次阅读 2020-05-13 10:03:05
    2.静态局部变量在编译时赋初值,程序运次时已经初值,以后每次调用函数不再重新赋初值而只是保留上次函数调用结束时的值。 3.静态局部变量编译时赋初值默认是0 而自动变量,如果不赋初值则它的值是不确定的值。 4....
  • C++ 全局变量、局部变量、静态全局变量、静态局部变量的区别 C++ 变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为 6 种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和...
  • 全局变量局部变量静态全局变量、静态局部变量的区别   转自:http://hi.baidu.com/sindana/blog/item/06fe68171e364401c93d6ded.html 标签:全局变量 局部变量 静态全局变量 静态局部变量 ...
  • 静态局部变量特点:  1.不会随着函数的调用和退出而发生变化,不过,尽管该变量还继续存在,但不能使用它。倘若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值  2.静态局部...
  • 静态变量 静态变量的类型说明符是static,静态变量属于静态存储方式,但属于静态存储方式的不一定是静态变量,如外部变量(全局变量)就属于静态存储方式,但不是静态变量。...对于自动变量(局部变量
  • 局部变量和全局变量的区别

    千次阅读 2017-03-05 18:17:45
    1、全局变量 全局变量也成为外部变量,它是在函数外部...在C等面向过程语言中,局部变量可以和全局变量重名,但是局部变量会屏蔽全局变量。在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。 #
  • Labview 局部变量

    千次阅读 2017-04-07 11:59:40
    局部变量和全局变量是LabVIEW用来传递数据的工具。LabVIEW编程是一种数据流编程,它是通过连线来传递数据的。但是,在很多情况下需要在同一VI的不同位置或在不同的VI中访问同一个控件对象,这时控件对象之间的连线就...
  • 与auto类型(普通)局部变量相比, static局部变量有三点不同1. 存储空间分配不同auto类型分配在栈上, 属于动态存储类别, 占动态存储区空间, 函数调用结束后自动释放, 而static分配在静态存储区, 在程序整个运行期间都...
  • 静态局部变量

    千次阅读 2015-11-04 15:44:22
    静态局部变量局部变量前,加上关键字static,该变量就被定义成为一个静态局部变量。 我们先举一个静态局部变量的例子,如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 //...
  • 我们知道lua脚本语言的变量是弱类型的,即变量没有类型,值才类型,同一名称的变量具体类型要看所赋值的类型,如下 ...全局变量和局部变量,类似于shell脚本 全局变量:顾名思义,其生命有效期是全局的,整个lua
  • 关于静态局部变量与静态外部变量

    千次阅读 2017-11-09 19:14:10
    静态局部变量特点:static int a; 1:静态局部变量存储在静态存储区,如果赋有初值,函数调用期间只赋值一次,下次调用该函数时,静态局部变量值为上次调用之后的结果,原因:静态局部变量在函数调用期间是不释放的...
  • 返回局部变量没问题 如果返回局部变量有问题,函数的意义还有吗? 全局变量还用返回吗?  返回指向局部变量的指针才问题, 函数退栈之后,局部变量消失, 指针将指向未知区域,所以出现问题。 返回局部...
  • 全局变量和局部变量详解

    千次阅读 2014-09-03 22:52:48
    1.局部变量 (1)局部变量也称为内部变量,他是在函数体内作定义说明的,其作用域仅限于函数内部,离开该函数后再使用这种变量是非法的。 如:func () { int x; 局部变量x的作用域 在函数体内  //...... ...
  • 全局变量和局部变量的区别

    千次阅读 2016-11-05 21:21:08
    变量三大特点 (1)变量数据类型:主要说明变量占用内存空间大小。 (2)变量的作用域:变量有效的取值范围,即变量的取值范围。 (3)变量的存储类型:变量在...局部变量是程序执行到本函数式分配内存空间,此函数
  • static两种用法:面向...全局变量、局部变量、静态全局变量、静态局部变量的区别  C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,
  • 全局变量、局部变量、全局静态变量、局部静态变量的区别。要从分配内存的位置和作用域入手来解释。 全局变量,分配的内存在静态存储区内存上面,其作用域是全局作用域,也就是整个程序的生命周期内都可以使用,...
  • 1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,...
  • auto类别的局部变量

    2019-03-26 18:57:15
    auto是局部变量的默认修饰 ...//auto类别局部变量特点的演示 #include<stdio.h> int main(void) { int i; for(i=0;i<3;i++) { auto int j=1; //这是个auto类别的局部变量,也可以写为int j=...
  • 如果局部变量的名字和成员变量的名字相同, 要想在该方法中使用成员变量,必须使用关键字this 成员变量和局部变量的区别成员变量:1、成员变量定义在类中,在整个类中都可以被访问。2、成员变量随着对象的建立而...
  • 什么局部变量(在函数内定义的变量) 为什么刚学习js的时候都说要少用全局变量呢?因为全局变量可以被每个函数调用,可能不经意的修改就影响到其他函数 var num=1; if(1==1){ var num=2; ...
  •    生命周期 ... 全局变量(定义在函数外部的变量)   普通全局变量 程序运行开始创建,程序退出才销毁 从定义变量处到本文件结尾都能使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 151,515
精华内容 60,606
关键字:

局部变量有什么特点