Static

也来总结一下C/C++中的关键字static   ,分别从以下几个方面来阐述:

1)静态全局变量:该变量在整个模块中是可见的,这和全局变量是一样的。不同之处在于,普通全局变量可以被其他文件用extern 关键字访问到,而静态全局变量则只对本文件可见。
2)静态局部变量:使用静态局部变量主要解决调用函数时能够保存变量的值,当然声明全局变量也可以解决这个问题,但是那样就体现不出变量的局限性。在函数中用Static来修饰,第一次调用时赋值,以后则保存最近修改过的值。静态局部变量与一般局部变量的不同还体现在,它是保存在全局数据域中而不是栈中,但是它的作用域还是局部的。
3)静态函数:跟一般函数不同在于,它只能用于声明它的文件中。好处在于减少命名冲突问题,不能被其他文件任意调用,保证了安全性。
从上面我们可以看到,无论是静态的变量还是函数,都只能作用于声明它的文件。

4)类中的STATIC:
  4.1 静态数据成员:对于一般类成员,一个实例就有一份自己的拷贝,而静态成员变量,对于所有的实例则只有一份拷贝。这样对于共同的属性可以节省空间,而且在需要修改时,只要修改一次就能达到修改所有实例的效果。我们可以这样声明和使用它:
声明:DataType < ClassName>::<static member> = <value>;
使用:<Object>.<static_member> or <ClassName>::<static_member>
    4.2 静态成员函数:通常情况下,对于成员或者函数都隐含了一个“This”指针,而Static成员函数却没有,所以它无法访问非静态成员,也无法访问非静态成员函数,而非静态成员函数却可以任意访问static变量和static函数。那么为什么要设置静态成员函数呢?由于没有this指针,它可以作为线程的回调函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值