• static 总结


    1. static 介绍

    (1)静态变量和全局变量一样,存储于静态存储区;
    (2)静态变量使变量在静态存储区分配内存,在声明该变量的整个文件都是可见的,而在文件外是不可见的,因此实现文件隔离,避免命名冲突。
    (3)静态局部变量一般在声明处初始化,程序默认初始化为0。
    主要优点:
    可以和全局变量一样只初始化一次,值可以保留至下一次函数调用时,访问范围限定在函数内,不被其他地方访问到。

    2. static 作用于普通变量

    void fun(){
    static int count=0;
    count++;
    cout<<count<<endl;
    }
    int main(){
    fun();
    fun();
    fun();
    return 0;}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    输出:

    1
    2
    3

    3. static 作用于类变量

    • 与作用于普通变量类似,类内的静态数据成员不论类被实例化多少次,静态数据成员不会被重新初始化,由该类型的所有对象共享访问。
    • **操作:**静态数据成员在全局数据区分配内存,属于本类的所有对象共享,所以,它不属于特定类对象,在没有产生类对象时就可以操作它。
    • 初始化方法: 需要在类外初始化,格式为<数据类型> <类名> :: <静态数据成员名> = <值>如:int MyClass::my_static=10;
    • 访问形式: 有两种访问方式,<类对象名>.<静态数据成员名>或者<类类型名> :: <静态数据成员名>
    • 应用场景: 静态数据成员主要用在各个对象都有相同的某项属性的时候。比如对于一个存款类,每个实例的利息都是相同的。所以,应该把利息设为存款类的静态数据成员。这有两个好处,第一,不管定义多少个存款类对象,利息数据成员都共享分配在全局数据区的内存,所以节省存储空间。第二,一旦利息需要改变时,只要改变一次,则所有存款类对象的利息全改变过来了。
  • 相关阅读:
    java通过钉钉机器人发消息
    java毕业设计大学生备考平台Mybatis+系统+数据库+调试部署
    艾美捷Enzo人 IgG1 同种型对照化学参数及文献参考
    一篇文章搞懂 HBase 的 Coprocessor
    Delete `␍`eslintprettier/prettier
    接口请求没有到达后端,被缓存怎么办
    Linux xargs 命令学习
    linux安装ES
    Oracle SQL执行计划操作(7)——排序相关操作
    基于Java毕业设计二手手机回收平台系统源码+系统+mysql+lw文档+部署软件
  • 原文地址:https://blog.csdn.net/GENGXINGGUANG/article/details/126819908