static总结:根据作用域,存储域,生命周期3点来说

  static含义: 是C/C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。

  (1)标准C语言中,static的最主要功能是隐藏,其次因为static变量存放在静态存储区,所以它具备持久性和默认值0。

    1、隐藏指的是作用域的区别,如果此函数或者变量被static关键字修饰

        a、修饰的是局部变量,那么只能在函数内可见(可使用)。

        b、修饰的是全局变量或函数,那么只能在当前文件下可见。其他的文件即使用extern声明也不能使用

    2、存储域

        a、static函数在内存中只有一份,普通函数在每次调用中都有一份拷贝。

        b、如果变量有初始化,那么会存储在全局数据区。未被初始化,会被存储在静态数据区,系统会自动赋予0值

    3、生命周期

        当程序开始时初始化,也是唯一一次,此变量创建直到程序结束

  (2)标准C++语言中

    静态变量:

       (1)静态数据成员可以实现多个对象之间的数据共享,它是类的所有对象的共享成员,它在内存中只占一份空间,如果改变它的值,则各对象中这个数据成员的值都被改变。 
        (2)静态数据成员是在程序开始运行时被分配空间,到程序结束之后才释放,只要类中指定了静态数据成员,即使不定义对象,也会为静态数据成员分配空间。 
                       (3)静态数据成员可以被初始化,但是只能在类体外进行初始化,若未对静态数据成员赋初值,则编译器会自动为其初始化为0 
                       (4)静态数据成员既可以通过对象名引用,也可以通过类名引用。

     静态成员: 

      (1)静态成员函数和静态数据成员一样,他们都属于类的静态成员,而不是对象成员。 
      (2)非静态成员函数有this指针,而静态成员函数没有this指针。 
      (3)静态成员函数主要用来方位静态数据成员而不能访问非静态成员。

最新文章

  1. windows重建图标缓存(解决快捷方式图标丢失,图标加载时间长问题)
  2. sql server ,sql语句,练习笔记
  3. NET代码重构
  4. js跳转页面方法整理
  5. c# 如何通过反射 获取\设置属性值、
  6. ionic框架,快速开发webAPP神器。
  7. UVA1218--树形DP
  8. [置顶] HDFS文件内容追加(Append)
  9. Git Hub,eclipse pull 出现问题
  10. UDP协议实现客户服务器数据交互
  11. main函数之后的调用
  12. PL2303HX在Windows 10下面不装安装驱动的解决办法(Code:10)
  13. 初学python之路-day10
  14. sqlmap tamper下模块的使用
  15. c#pc上测试微信端企业公众商城个人中心链接的工具JMeter
  16. log4j2打印Mybatis执行的SQL语句及SQL语句的执行时间
  17. Linux批量更改文件后缀-转载
  18. Java常量定义需要注意的两点
  19. 让TextView的drawableLeft与文本一起居中显示
  20. Codeforces Round #397 by Kaspersky Lab and Barcelona Bootcamp (Div. 1 + Div. 2 combined) D. Artsem and Saunders

热门文章

  1. (5.1)mysql高可用系列——高可用架构方案概述
  2. Dubbo使用Sentinel来对服务进行降级与限流
  3. springdata的jpa配置文件application.xml
  4. 为什么 ConcurrentHashMap 的读操作不需要加锁?
  5. 坦克大战--Java类型 ---- (3)实现socket通信
  6. AC自动机模版
  7. 多进程-Pipe和Manager数据共享和传递
  8. 【Java】Java程序报错:EXCEPTION_ACCESS_VIOLATION (0xc0000005)
  9. javaagent项目中使用
  10. 关于redis的几件小事(七)redis缓存雪崩与穿透