static用法以及静态成员函数和静态成员变量

static关键字作用

static作用:“改变生命周期” 或者 “改变作用域”
程序的局部变量存在于堆栈中,全局变量存在于静态区中,动态申请数据存在于中。
1.作用于变量:
声明局部变量:局部变量指在大括号{}中内部定义的变量,只在大括号{}内部有效(大括号{}就是它的作用域),用static声明局部变量时,就会改变变量的存储方式,使变量成为静态的局部变量,这样在代码编译时就为变量分配内存,直到程序退出才释放存储单元。
声明外部变量:外部变量指在所有大括号{}之外定义的变量,它如果定义为静态变量,编译时就会分配内存,程序结束时释放内存单元。同时其作用域很广,整个文件都有效甚至别的文件也能引用它。为了限制某些外部变量的作用域,使其只在本文件中有效,而不能被其他文件引用,可以用static关键字对其作出声明。
总结
用static声明局部变量,使其变为静态存储方式(静态数据区),作用域不变;
用static声明外部变量,其本身就是静态变量,这只会改变其连接方式,使其只在本文件内部有效,而其他文件不可连接或引用该变量。
2.作用于函数:
使用static用于函数定义时,会使得函数只在本文件内部有效,对其他文件是不可见的。这样的函数又叫作静态函数。使用静态函数的好处是,不用担心与其他文件的同名函数产生干扰,另外也是对函数本身的一种保护机制。
如果想要其他文件可以引用本地函数,则要在函数定义时使用关键字extern,表示该函数是外部函数,可供其他文件调用。另外在要引用别的文件中定义的外部函数的文件中,使用extern声明要用的外部函数即可。

静态成员函数和静态成员变量有什么意义?

静态成员变量
静态成员变量属于整个类所有
静态成员变量的生命期不依赖于任何对象,为程序的生命周期
可以通过类名直接访问公有静态成员变量
所有对象共享类的静态成员变量
可以通过对象名访问公有静态成员变量
静态成员变量需要在类外单独分配空间
静态成员变量在程序内部位于全局数据区
静态成员函数
静态成员函数是类的一个特殊的成员函数
静态成员函数属于整个类所有,没有this指针
静态成员函数只能直接访问静态成员变量和静态成员函数
可以通过类名直接访问类的公有静态成员函数
可以通过对象名访问类的公有静态成员函数
定义静态成员函数,直接使用static关键字修饰即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值