static有什么用途?

定义静态变量

定义静态全局变量

在普通全局变量前加关键字static就声明成了静态全局变量。如果没有初始化,则其默认值为0。二者的存储方式一样,均存储在静态存储区。然而二者的作用域发生了变化。非静态的全局变量作用域是整个源程序,比如说一个源程序中包含多个文件,则非静态的全局变量在各个文件中均有效。而static全局变量则限制了其作用域只能在定义了该变量的文件内,在其他文件中不能使用它。(其他文件不可以通过将它定义为extern而使用它)。

定义静态局部变量

在局部变量前面加上关键字static,该局部变量就成了静态局部变量。如果没有初始化,则其默认值为0。在函数内以static声明的变量虽然与自动局部变量的作用域相同(即作用域都只限于函数内),但存储空间是以静态分配而非默认的自动分配方式获取的。静态局部变量只能初始化一次,这是由编译器来保证实现。

定义静态成员变量

在C++中,在类的定义中以static声明的成员变量属于类变量,也即在所有类实例中共享。普通成员变量每个类实例有一份,而静态成员变量一个类只有一份,被所有类实例共享。静态数据成员在定义时需要分配空间,所以不能在类中进行初始化静态数据成员没有this指针
静态成员变量本质上还是全局变量。

定义静态函数

在函数的返回类型上加上关键字static,函数就被定义成静态函数,函数的作用域被限制在当前文件下。

定义静态成员函数

在C++中,在类的定义中以static声明的成员函数属于类函数。静态成员函数不具体作用于某个类实例,所以静态成员函数内部不能访问非静态成员变量,也不能调用非静态成员函数静态成员函数。非静态数据成员属于特定的类实例。主要用于对静态数据成员的操作。静态成员函数没有this指针。

static有什么用途?相关推荐

  1. 每日一题(15)—— static有什么用途

    static有什么用途?(请至少说明两种) (1) 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变. (2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访 ...

  2. static有什么用途

    在C语言中,static主要定义全局静态变量,定义局部静态变量,定义静态函数 一.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有以下特点: (1) ...

  3. 面试季,Java中的static关键字解析

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面 ...

  4. VMware Coding Challenge: Possible Scores Summary: static

    Combination Sum I 那道题的变体 1 /* 2 * Complete the function below. 3 */ 4 5 static int is_score_possible ...

  5. Java中的static关键字解析 转载

    原文链接:http://www.cnblogs.com/dolphin0520/p/3799052.html Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到 ...

  6. C语言关于static的解析

    C语言关于static的解析 #include<stdio.h> static int j; void fun1(void) { int i = 0; i ++; } void fun2( ...

  7. Java基础:详解static关键字与类加载顺序

    1. 前言 前文中说到了static关键字,在Java中这是一个很重要的关键字,它有很多的用法,并且在某些特定的情况下使用可以优化程序的性能.本文学习static关键字的应用场景.在这之前了解变量的类 ...

  8. [转] Java中的static关键字解析

    Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键 ...

  9. 【Java学习笔记之十五】Java中的static关键字解析

    Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键 ...

最新文章

  1. html实现圆圈逐渐放大,CSS3 简单的圆形放大旋转变换
  2. python 设置x轴_python matplotlib坐标轴设置的方法
  3. DataTable的Merge\COPY\AcceptChange使用说明
  4. 会议 | CCKS 2019 全国知识图谱与语义计算大会在杭州隆重召开
  5. 心得体会:分治法 || 做题也有模板
  6. 两条信号之间加电容_模电总结:第七章、波形的发生和信号的转换,正弦波振荡的电路...
  7. 初识NB-IoT的机卡绑定
  8. 监控一个大事务的回滚
  9. 【c4d学习笔记】对称方向不对的问题
  10. Matlab之共轭转置与非共轭转置
  11. 环境规制指数,两种测算方法,整理好的面板数据
  12. Newcoder lxh裁木棍 (不开long double见祖宗 ceil前不加long long也去
  13. 电路复习——含耦合电感的电路与变压器
  14. 我为什么要转到软件工程专业
  15. 洞察·分析·管理 | 解读良品铺子的客户体验管理三部曲
  16. Andriod Studio 安装过程
  17. 深入理解数据库磁盘存储(Disk Storage)
  18. 网页能够兼容所有手机浏览器—杂记(2)
  19. IntellIdea+SpingMVC简单项目
  20. 论文阅读:pFabric: Minimal Near-Optimal Datacenter Transport

热门文章

  1. Result Maps collection already contains value for问题
  2. 人工智能在网络犯罪中的应用:5个最重要的趋势
  3. 红楼热波及收藏界 红迷追捧红楼藏品
  4. 冯诺依曼结构为什么对计算机届影响巨大
  5. python怎么用numpy函数_Python numpy.ravel函数方法的使用
  6. webrtc示例peerconnection_clientserver
  7. 祝贺开源社理事长刘天栋先生当选为 Apache 软件基金会正式成员
  8. Python爬虫——正则表达式(超详细,附带实战演练)
  9. html实现简易商城网页设计
  10. qa职业规划_INTP职业规划模型及个案详细解析