首页 > 其他分享 >静态static

静态static

时间:2022-09-21 21:55:10浏览次数:52  
标签:存储 变量 静态 局部变量 static 全局变量

静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直 到整个程序运行结束(相反,而auto自动变量,即动态局部变量,属于动态存储类别,占动态存储空间,函数调用结束后即释放)。静态变量虽在程序的整个执 行过程中始终存在,但是在它作用域之外不能使用。

另外,属于静态存储方式的量不一定就是静态变量。 例如:外部变量虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。
所有的全局变量都是静态变量,而局部变量只有定义时加上类型修饰符static,才为局部静态变量。

Static类内部变量同auto自动变量(即未加 Static 声明的局部变量)一样,是某个特定函数的局部变量,即只能在定义该变量的函数内使用该变量,2者作用域相同;两者的不同在于:auto自动变量会随着函数 被调用和退出而存在和消失,而static类局部变量不会,它不管其所在的函数是否被调用,都将一直存在;不过,尽管该变量还继续存在,但不能使用它。倘 若再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值。换言之,Static类型的内部变量是一种只能在某个特定函数中使用,但一 直占据存储空间的变量。

全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。
全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。
这两者在存储方式上并无不同。
   
这两者的区别虽在于:
1、非静态全局变量的作用域是整个源程序 ,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。
2、静态全局变量则限制了其作用域, 即只在定义该变量的源文件 内有效,在同一源程序的其它源文件(即声明了该变量的CPP文件,或包含该变量声明头文件的CPP文件)中不能使用它。

 

 

 

   java中不能将方法体内的局部变量声明为static
    main()函数是静态的,没有返回值,形参为数组。
    非静态成员的可以随便调用静态成员

标签:存储,变量,静态,局部变量,static,全局变量
From: https://www.cnblogs.com/liucaizhi/p/16717268.html

相关文章

  • 20.静态成员变量
    程序1:#pragmawarning(disable:4996)//2022年9月21日19:20:29#include<iostream>usingnamespacestd;classMaker{public:Maker(){a=20;......
  • static学习总结
    static关键字在类中,用static声明的成员变量为静态成员变量,也称为类变量。类变量的生命周期和类相同,在整个应用程序执行期间都有效。注意static修饰的成员变量和方法,从......
  • 静态static用法
    1.静态变量将变量声明为static,就是静态变量,可以用于引用所有对象的公共属性。可以节省空间。例如一个学生类classstudent{intage;Stringname;}如果每......
  • IP静态路由
    IP静态路由基础概述为了实现数据的转发,路由器必须有能力建立、刷新路由表,并根据路由表转发数据包定义路由是数据通信网络中的最基本的要素。路由信息就是知道报文发送的......
  • static的用法
    static代表的含义?“static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static......
  • docker 静态IP配置通信
    Docker静态IP配置通信新建网段dockernetworkcreate--subnet=网段网桥名字同一主机内启动镜像dockerrun-d-p端口:端口--net=网桥名字--ip=IP地址1--name容......
  • Java中static的作用
    是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退......
  • static
    static关键字1.修饰成员变量在我们平时的使用当中,static最常用的功能就是修饰类的属性和方法,让他们成为类的成员属性和方法,我们通常将用static修饰的成员称为类成员或者......
  • 枚举真的比静态常量更占空间吗?
    前两天在网上看到一条信息:枚举比静态常量更占用空间。这是真的吗?前言枚举枚举类型是Java5中新增特性的一部分,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(......
  • 静态static内容
    我们知道static是静态修饰符,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而被static修饰的代码会在编译时就被分配内存,程序退出时才会释放其内存,也就......