当前位置:首页 > 自我学习 > 正文内容

静态变量和实例变量区别(静态变量和实例变量的含义)

2023-03-29 23:24:04自我学习3

静态变量和实例变量的含义

(1)静态局部变量在函数内定义,但不象自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始终存在着,也就是说它的生存期为整个源程序。   (2)静态局部变量的生存期虽然为整个源程序,但是其作用域仍与自动变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。     (3)对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值。而对自动变量不赋初值,则其值是不定的。 根据静态局部变量的特点, 可以看出它是一种生存期为整个源文件的量。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用, 而且保存了前次被调用后留下的值。 因此,当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用(尤其是短名全局变量的变量名污染很严重),因此仍以采用局部静态变量为宜。 简单的说静态局部变量与全局变量最明显的区别就在于:全局变量在其定义后所有函数都能用,但是静态局部变量只能在一个函数里面用。

静态变量,实例变量,局部变量的区别

具体是酱紫的局部静态跟全局静态内存中性质一样,文件里都在数据段。唯一区别局部静态变量有作用域限制,是靠编译器帮忙语法检测。

局部静态变量有个初始化问题,当多次调用一个含有局部静态变量的函数时候,怎么保持之初始化一次。程序会在内存中第一个bit位,来标识是否初始化过。所以答案是,该局部静态变量跟全局变量一样很早就存在于全局数据区。但当第一次运行到该函数,会检测一个位,来判断是否已经初始化。参考书籍,c++反汇编与逆向分析技术揭秘

静态变量举例

JAVA成员变量和静态变量的区别:

1,成员变量所属于对象。所以也称为实例变量。 静态变量所属于类。所以也称为类变量。

2,成员变量存在于堆内存中。 静态变量存在于方法区中。

3,成员变量随着对象创建而存在。随着对象被回收而消失。 静态变量随着类的加载而存在。随着类的消失而消失。

4,成员变量只能被对象所调用 。 静态变量可以被对象调用,也可以被类名调用。 所以,成员变量可以称为对象的特有数据,静态变量称为对象的共享数据。

静态变量和实例变量的含义是什么

意思的区别静态全局变量:只要程序系统是运行的,那么该寄存器和他的值不会自动清除,而且在任何函数都可使用静态局部变量:只要程序系统是运行的,那么该寄存器和他的值不会自动清除,只能在定义的该函数范围内使用静态全局变量:只有在该函数运行的,该寄存器和他的值随函数的结束自动清除,只能在定义的该函数范围内使用

静态变量和实例变量有何区别

非静态成员也叫成员变量,二者区别如下:

1、名称上的区别成员变量也叫实例变量;静态变量也叫类变量。

2、内存存储的区别成员变量存储到堆内存的对象中,静态变量存储到方法区的静态区中。

3、生命周期不同成员变量随着对象的出现而出现,随着对象的消失而消失。静态变量随着类的出现而出现,随着类的消失而消失。

本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:https://www.xibujisuan.cn/98759831.html