static作用

作者: 20b347b28fc9 | 来源:发表于2016-03-05 20:11 被阅读215次
  • 程序的局部变量存放在堆栈
  • 全局变量存放在常量区
  • 动态申请数据存放在
static的主要作用是改变生命周期改变作用域
  1. static作用在 变量
  • 用static声明局部变量

    • 局部变量指在代码块{}内部定义的变量,只在代码块内部有效(作用域),其缺省的存储方式是自动变量或说是动态存储的,即指令执行到变量定义处时才给变量分配存储单元,跳出代码块时释放内存单元(生命期)。
    • 用static声明局部变量时,则改变变量的存储方式(生命期),使变量成为静态的局部变量,即编译时就为变量分配内存,直到程序退出才释放存储单元。这样,使得该局部变量有记忆功能,可以记忆上次的数据,不过由于仍是局部变量,因而只能在代码块内部使用(作用域不变)。
  • 用static声明外部变量

    • 外部变量指在所有代码块{}之外定义的变量,它缺省为静态变量,编译时分配内存,程序结束时释放内存单元。同时其作用域很广,整个文件都有效甚至别的文件也能引用它。
    • static关键字声明外部变量时,变量的作用域会改变,只能在本文本中有效,而不能被其他文件引用。我们用static声明外部变量是改变了变量的作用域。
  • 总结:用static声明局部变量,使其变为静态存储方式(静态数据区),作用域不变;用static声明外部变量,其本身就是静态变量,这只会改变其连接方式,使其只在本文件内部有效,而其他文件不可连接或引用该变量。

  1. static作用在 函数
  • 使用static用于函数定义时,对函数的连接方式产生影响,使得函数只在本文件内部有效,对其他文件是不可见的。这样的函数又叫作静态函数。使用静态函数的好处是,不用担心与其他文件的同名函数产生干扰,另外也是对函数本身的一种保护机制。
  • 如果想要其他文件可以引用本地函数,则要在函数定义时使用关键字extern,表示该函数是外部函数,可供其他文件调用。另外在要引用别的文件中定义的外部函数的文件中,使用extern声明要用的外部函数即可。

static作用总结

设置变量的存储域,函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;
限制变量的作用域,在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;
限制函数的作用域,在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内;
在类中的static成员变量意味着它为该类的所有实例所共享,也就是说当某个类的实例修改了该静态成员变量,其修改值为该类的其它所有实例所见;
在类中的static成员函数属于整个类所拥有,这个函数不接收this指针,因而只能访问类的static成员变量。

相关文章

  • static作用

    程序的局部变量存放在堆栈中 全局变量存放在常量区中 动态申请数据存放在堆中 static的主要作用是改变生命周期 ...

  • static作用

    静态局部 静态变量i不存放在栈中,而是存放于程序的全局变量区域,因此随着函数test的结束,它并不随着出栈操作而被...

  • Java基础 --- static

    static --- 数据共享 1 为什么会出现 static (作用) static --- 数据共享 如果很...

  • static的作用

    Static 是什么储存的位置在哪里? 它是将变量or函数设置为静态的一个标识符,储存在全局数据区(数据并不会因为...

  • static的作用

    导航栏细节 防止系统自动调整scrollowView的contentInset extern 的作用 static...

  • static的作用

    C语言中static 的作用 隐藏。变量和函数,如果加了static修饰,就会其它源文件隐藏。利用这一特性可以在不...

  • static的作用

    1.修饰局部变量 让局部变量只初始化一次 局部变量在程序中只有一份内存 并不会改变局部变量的作用域,仅仅是改变了局...

  • Static的作用

  • static的作用

    在C语言中,static主要定义全局静态变量,定义局部静态变量,定义静态函数。static属于静态变量,使用它修饰...

  • 第五章:面向对象基础——static关键字。

    本章目标 了解static关键字的作用 掌握static属性、static方法的声明及使用 掌握static使用的...

网友评论

    本文标题:static作用

    本文链接:https://www.haomeiwen.com/subject/xmfakttx.html