static 清疚 2023-01-23 06:57 14阅读 0赞 参考:[https://blog.csdn.net/zdb292034/article/details/80720051][https_blog.csdn.net_zdb292034_article_details_80720051] **使用** 1. 修饰普通变量,修改变量的存储区域和生命周期,使变量存储在静态区,在 main 函数运行前就分配了空间,如果有初始值就用初始值初始化它,如果没有初始值系统用默认值初始化它。 2. 修饰普通函数,表明函数的作用范围,仅在定义该函数的文件内才能使用。在多人开发项目时,为了防止与他人命名空间里的函数重名,可以将函数定位为 static。 3. 修饰成员变量,修饰成员变量使所有的对象只保存一个该变量,而且不需要生成对象就可以访问该成员。 4. 修饰成员函数,修饰成员函数使得不需要生成对象就可以访问该函数,但是在 static 函数内不能访问非静态成员。 **类中静态成员的初始化** 引用和常量:必须通过构造函数的参数列表的方式初始化。 静态变量: 必须在类定义体外进行初始化与定义 静态常量:可以直接在类中初始化,也可以在类中声明,在类定义体外进行定义 **静态局部变量&静态全局变量** 1. 静态局部变量 在局部变量的说明前再加上static说明符就构成静态局部变量。例如: static int a,b; static float array\[5\]=\{1,2,3,4,5\}; 静态局部变量属于静态存储方式,它具有以下特点: (1)静态局部变量在函数内定义,但不象自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始终存在着,也就是说它的生存期为整个源程序。 (2)静态局部变量的生存期虽然为整个源程序,但是其作用域仍与自动变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后,尽管该变量还继续存在,但不能使用它。 (3)允许对构造类静态局部量赋初值。若未赋以初值,则由系统自动赋以0值。 (4)对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值。而对自动变量不赋初值,则其值是不定的。根据静态局部变量的特点,可以看出它是一种生存期为整个源程序的量。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值。因此,当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜。 2.静态全局变量 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。因此static 这个说明符在不同的地方所起的作用是不同的。应予以注意。 汇总: (1)静态局部变量和全局变量生命周期为整个源程序的周期,而动态的局部变量为函数的生存周期; (2)静态的全局变量作用范围在该源文件中,非静态的全局变量在的源程序中(包含多个源文件); [https_blog.csdn.net_zdb292034_article_details_80720051]: https://blog.csdn.net/zdb292034/article/details/80720051
相关 Static > \很多成员变量只写一个,但每个对象都可以使用,说明成员变量或者方法存在属性,属于对象/类本身 > \ java成员变量中是通过是否有static修饰区分类/对象 > 骑猪看日落/ 2023年10月07日 18:22/ 0 赞/ 18 阅读
相关 static 参考:[https://blog.csdn.net/zdb292034/article/details/80720051][https_blog.csdn.net_zdb292 清疚/ 2023年01月23日 06:57/ 0 赞/ 15 阅读
相关 static static简介 static是一个修饰符,可以修饰属性、方法、内部类、初始化块, 称为静态成员或类成员,不能修饰局部变量和构造器 什么时候需要使用静态的成员 怼烎@/ 2022年12月27日 02:14/ 0 赞/ 17 阅读
相关 static 1 C++中 简介 C\与C++的static有两种用法: [面向过程][Link 1] [程序设计][Link 2]中的static和 [面向对象程序设计][L 今天药忘吃喽~/ 2022年09月18日 04:50/ 0 赞/ 171 阅读
相关 static 类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不在被动。 静态类成员包括静态数据成员和静态函数成员两部分 朱雀/ 2022年08月09日 05:10/ 0 赞/ 102 阅读
相关 final static和static ![Image 1][] ![Image 1][]![Center][] ![Image 1][] ![Center 1][] ![Cent 你的名字/ 2022年06月03日 10:55/ 0 赞/ 237 阅读
相关 static package com.atguigu.java1; / static,静态的,可以用来属性、方法、代码块(或初始化块)、内部类 客官°小女子只卖身不卖艺/ 2022年03月24日 19:10/ 0 赞/ 113 阅读
相关 static 文章目录 c中的static、C++中static拓展 static修饰类中成员变量 static修饰类中成员函数 系统管理员/ 2022年03月19日 15:37/ 0 赞/ 121 阅读
相关 static static C++的static有两种用法,面向过程程序设计中的static和面向对象程序设计中的static 前者应用于普通变量和函数,不涉及类;后者主要说明stat 末蓝、/ 2022年03月16日 02:38/ 0 赞/ 126 阅读
相关 static static静态 static应用范围:可用于内部类、方法和变量。 是一个修饰符,用来修饰变量、方法没有被static修饰的对象称为实例变量 静态变量,则 浅浅的花香味﹌/ 2021年09月10日 23:10/ 0 赞/ 262 阅读
还没有评论,来说两句吧...