static用法

一、C语言

1.静态局部变量

在全局数据区进行内存分配,生存期长于它对应的函数,程序执行到该对象的声明处时被首次初始化,只初始化一次,即以后的函数调用不再进行初始化,如果没有显式初始化,自动初始化为0,它始终驻留在全局区,直到程序运行结束,但其作用域为局部作用域,也就是不能在函数体外面使用它。

2.静态全局变量

文件隔离!

3.静态函数

文件隔离!


C语言中这几种static的用法也可以用在C++中。


文件隔离就是他们的作用域被限制在定义他们的源文件中,即它们具有文件隔离的特性,这意味着,即使相同的函数名(变量名)在其它源文件中被声明,也不会与当前静态全局函数产生冲突,更进一步,这种特性可以有效的隐藏和隔离错误,有利于模块化程序设计,增强了代码的可阅读性和可维护性。

二、C++

 除C语言的几种用法,还有额外两种。

1.静态数据成员

用于修饰class的数据成员,即“静态成员”,这种数据成员的生存期大于class的对象(示例instance).。静态数据成员是每个class有一份,普通数据成员是每个instance有一份,因此静态数据成员也叫类变量,而普通数据成员叫示例变量

2.静态成员函数

静态数据成员函数不能访问非静态(包括数据成员和成员函数),只能访问静态(成员和函数),但费非静态可以访问静态(函数和成员)。

调用静态成员函数可以用成员访问操作符(.)和(->),为一个类的对象或指向类对象的指针调用静态成员函数也可以用类名::函数名调用(因为它本来就是属于类的),用类名调用很正常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逐云之巅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值