美文网首页
static作用

static作用

作者: 昵称不能全是数字 | 来源:发表于2019-05-20 18:23 被阅读0次

静态局部

静态变量i不存放在栈中,而是存放于程序的全局变量区域,因此随着函数test的结束,它并不随着出栈操作而被销毁,它的生存周期存在于程序的整个运行期;然而m和i的作用域都仅存在于test函数中它们的定义之后,即test调用结束之后,m和i就不再可用,但是i仍存在于内存之中。

静态全局

在声明全局的static变量时,static没有改变它的生存周期,也即存储位置(因为全局变量本来就存储在全局数据域),而是将变量的作用域限制在当前文件中

比较

  1. static全局变量与普通的全局变量有什么区别 ?

全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。

全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。

这两者的区别在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误

static全局变量只初使化一次,防止在其他文件单元中被引用;

  1. static局部变量和普通局部变量有什么区别 ?

把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。

static局部变量只被初始化一次,下一次依据上一次结果值

  1. static函数与普通函数有什么区别?

static函数与普通函数作用域不同,仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static修饰的函数),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件.

static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝


类静态成员和静态函数

在类中,静态成员可以实现多个对象之间的数据共享,并且使用静态数据成员还不会破坏隐藏的原则,即保证了安全性。因此,静态成员是类的所有对象中共享的成员,而不是某个对象的成员。对多个对象来说,静态数据成员只存储一处,供所有对象共用

静态成员函数和静态数据成员一样,它们都属于类的静态成员,它们都不是对象成员。因此,对静态成员的引用不需要用对象名。
在静态成员函数的实现中不能直接引用类中说明的非静态成员,可以引用类中说明的静态成员(这点非常重要)。如果静态成员函数中要引用非静态成员时,可通过对象来引用。从中可看出,调用静态成员函数使用如下格式:<类名>::<静态成员函数名>(<参数表>);

参考

https://blog.csdn.net/cc198877/article/details/8844729
https://www.nowcoder.com/ta/review-c/review?tpId=22&tqId=31342&query=static&asc=true&order=&page=2

相关文章

  • 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/edrlzqtx.html