static关键字的作用

C语言中

1.全局静态变量
修饰全局变量,全局变量就定义成为一个全局静态变量.

静态存储区,在整个程序运行期间一直存在

初始化:未经初始化的全局静态变量会被自动初始化为0;

作用域:全局静态变量的作用域为整个源文件.
2.局部静态变量
在局部变量前加上static关键字,局部变量就变成了局部静态变量

内存中的位置:静态存储区

改变局部变量的生命周期,出了作用域域生命周期依然存在,到程序结束生命周期才结束(只在当前文件中生效).
3.静态函数
一个函数被static关键字修饰,使得函数只能在本源文件内使用,不能在其他源文件内使用.
4.类的静态成员
在类中,静态成员可以实现多个对象之间的数据共享,并且使用静态数据成员还不会破坏隐藏的原则,保证了安全性.因此静态成员是类的所用对象中共享的成员,而不是某个对象的成员,对多个对象来说,静态数据成员值储存一处,供所有对象共用.
5.静态成员函数
静态成员函数和静态数据成员一样,它们都属于类的静态成员,它们都不是对象成员
.因此静态成员的引用不需要用对象名.

C++中static关键字的作用

对于函数定义和代码块之外的变量声明,static修饰标识符的链接属性,由默认的external变为internal,作用域和储存类型不改变,这些符号只能在声明它的源文件中访问.

对于代码块内部的变量声明,static修饰的标识符储存类型,由自动变量改为静态变量
,作用域和链接属性不变,这种变量在程序执行之前就创建,在程序执行的整个周期都存在.

对于static修饰的普通函数,其只能在定义它的源文件中使用,不能在其他源文件中被引用.

对于被static修饰的类成员变量和成员函数,它们是属于类的,而不是某个对象,所有对象共享一个静态成员.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值