在C语言中,关键字static有三个明显的作用:

1)在函数体内,一个被声明为静态的变量在这一函数被调用过程中维持其值不变(该变量存放在静态变量区)。

2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。注意,只有在定义了变量后才能使用。如果变量定义在使用之后,要用extern 声明。所以,一般全部变量都会在文件的最开始处定义。

3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。
static关键字至少有下列n个作用:
(1)设置变量的存储域,函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;

(2)限制变量的作用域,在模块内的static全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问;

(3)限制函数的作用域,在模块内的static函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明它的模块内;

以下是C++对static的扩展
(4)在类中的static成员变量意味着它为该类的所有实例所共享,也就是说当某个类的实例修改了该静态成员变量,其修改值为该类的其它所有实例所见;
(5)在类中的static成员函数属于整个类所拥有,这个函数不接收this指针,因而只能访问类的static成员变量。

最新文章

  1. C#中的Excel操作【1】——设置Excel单元格的内容,打开Excel文件的一种方式
  2. C#读取Excel遇到无法读取的解决方法
  3. java 里面的string 和byte[] 怎么互转
  4. xunsearch迅搜体验
  5. JavaSE聊天室
  6. nginx根据域名做http,https分发
  7. HTTP协议 状态码详解
  8. OWIN与Katana
  9. jQuery获取、设置title的值
  10. 基于webpack的React项目搭建(一)
  11. Asp.NetCore轻松学-使用Supervisor进行托管部署
  12. MySQL性能基准测试对比:5.7 VS 8.0
  13. centos7下源码安装多个nginx步骤完整版
  14. indexOf 引用
  15. sklearn 总结
  16. BugFree使用技巧 转载
  17. sparkr脚本
  18. tensorflow读取训练数据方法
  19. Hive插入数据的几种常用方法
  20. js 生成二维码

热门文章

  1. 美团小程序框架mpvue入门
  2. Manjaro为包管理器pacman和yaourt\yay 添加多线程下载
  3. 使用mybatis assembly插件打成tar包,在linux系统中运行服务
  4. centos如何设置固定IP
  5. css 背景(background)属性、背景图定位
  6. css 浮动布局,清除浮动
  7. Dreamweaver编辑区下方的属性栏显示
  8. NOIP-机器翻译
  9. GMA Round 1 最短距离
  10. jquery运用FormData结合Ajax异步上传表单,超实用