static关键字

1在C语言中,static修饰的变量与全局变量类似,在程序编译时(程序运行前)加载到内存数据段上,其中细分为(bss段:存放未初始化的全局变量,data段:存放初始化的全局变量)

2在c++语言中,对象的创建只有执行了构造函数之后才会完成,但static修饰的对象,在程序以运行就被创建(单例设计模式就基于此完成设计)

静态变量

  • 全局静态变量

内存中的位置:存储在静态存储区(数据段),且整个程序运行期间一直存在,生命周期与程序生命周期一致

初始化:未经初始化的全局静态变量,默认初始化为0(除非被显式初始化)

作用域:全局静态变量在声明之外的文件是不可见的,即从定义起到该文件末尾

  • 局部静态变量

内存中的位置:存储在静态存储区(数据段)

初始化:未经初始化的全局静态变量,默认初始化为0(除非被显式初始化)

作用域:局部静态变量的作用域为局部作用域,当定义局部静态变量的函数或语句块结束后,则该变量生命周期结束。但是局部静态变量离开作用域之后,并没有销毁,依然保留在内存中,只不过出作用域外无法访问该变量,直到该函数再次被调用,值不会因外部操作而改变

静态函数

一般函数的定义和声明默认是extern,当用static修饰时,静态函数只能在当前文件中可见,不会被其他文件使用

类的静态成员

对于多个对象而言,静态成员在类内声明,类外初始化,且只存储一处,供所有对象使用,实现多个对象之间数据共享

类的静态函数

在静态成员函数中可以直接引用静态成员但不可以直接引用非静态成员,如果静态成员函数需要引用非静态成员,可以通过对象传参来引用

面试中常被问(一)static关键字相关推荐

  1. 面试中常被问到(11)虚函数/纯虚函数

    虚函数 如何定义一个虚函数?在基类成员函数前加入virtual关键字,但并不代表此函数不被实现,只是说明允许基类指针调用派生类重写的此函数 一个类只要声明有虚函数或者从基类继承了虚函数,在编译过程中就 ...

  2. Python培训常识:Python面试中常被问到的几种设计模式要知道

    学习Python技术大家都是为了日后能够找到适合自己的工作岗位,那么除了要学习好Python技术外,对于面试环节的问题也要有所了解,本期小编为大家介绍的Python培训教程就算关于Python面试中常 ...

  3. e - 数据结构实验之查找五:平方之哈希表_面试中常被问到的Hash表,你了解吗

    #新人扶持计划# Hash表在面试中经常被问到,今天我们来了解下. Hash表也称散列表,也有直接译作哈希表,Hash表是一种特殊的数据结构,它同数组.链表以及二叉排序树等相比较有很明显的区别,它能够 ...

  4. 面试中常被问到(五)C++析构函数,虚析构函数

    C++析构函数 (1)对于析构函数:析构函数与构造函数相呼应,从调用构造函数开始到自动执行析构函数二者调用期间即为所创建对象实例的生命周期. (2)析构函数与类名相同,仅前面加一个~,一般析构函数无参 ...

  5. php面试中常被问到的问题--欢迎留言补充

    2019独角兽企业重金招聘Python工程师标准>>> 整理自己的项目 -- 问到的概率大 问项目的具体内容,遇到的挑战,具体解决办法. 为什么使用独立文件服务器?1,从服务器本身来 ...

  6. Linux运维面试中常被问到的两个shell脚本

    脚本一: 在公司里有一个网段是 192.168.3.0的网段,现在想判断一下哪些主机在线,哪些主机不在线. shell脚本解决方案: 方法一: 思路 首先要循环目标主机的IP地址,IP地址分为两部分: ...

  7. 面试:整理面试中常被问到的8种数据结构

    数据结构是一种特殊的组织和存储数据的方式,可以使我们可以更高效地对存储的数据执行操作.数据结构在计算机科学和软件工程领域具有广泛而多样的用途. 几乎所有已开发的程序或软件系统都使用数据结构.此外,数据 ...

  8. 面试中常被问到的(21)TCP/UDP如何保持可靠性

    Tcp保持可靠性从以下三个方面描述: 1,可靠传输:面向连接,包序管理,确认应答,超时重传,校验和 2,避免丢包:滑动窗口流量控制,拥塞机制(慢启动快增长) 3,提高性能:确认序号快速重传,延迟应答, ...

  9. 面试中常被问到(三)c/c++区别

    c/c++区别 c是面向过程的语言,c++是面向对象的语言,现如今都采用面向对象(oop)编程技术,为什么oop语言如此热门呢? 比如像c++语言中,有封装(类及对象),继承和多态机制,此外c++还支 ...

最新文章

  1. 如何清空DNS缓存Windowslinux
  2. 项目经理的超越(一)你超越了吗?
  3. mysql 清理host文件_如何删除mysql 数据库里面的host
  4. 第二节 -- python的基础语法
  5. 爱宠无人看护?别担心人工智能已经来了
  6. erp系统服务器都是维护些什么意思,erp系统维护服务器维护管理文档.doc
  7. JavaScript和Java的区别
  8. preg使用。还是一样,只是个人记录,不放博客园首页
  9. 创建自己的Convers. Routine.
  10. Entity Framework 5自动生成ObjectContext或者DbContext的设置
  11. 火出B站的冠状病毒传播模拟仿真程序代码解析来啦!
  12. 如何用gitbook写文档并存到github上
  13. 大型WEB系统架构的那些组成
  14. Atitit MATLAB 图像处理 经典书籍attilax总结
  15. SpringBoot开发的java后台管理系统
  16. matlab读取图片排序1 10 2出错解决方法/图片批量重命名
  17. 小插曲--树莓派屏幕分辨率调整
  18. 系统总裁SC系统封装WIN7
  19. 计算机网络连接显示678是什么意思,宽带连接错误678是什么意思 宽带连接错误678的解决方案...
  20. 计算机基础之冯诺依曼体系结构

热门文章

  1. 矩阵幂法求Fibonacci数 复杂度O(logn)
  2. 逻辑回归解释 (Logistic Regression)
  3. 企业管理软件平台架构内幕揭秘(转载)
  4. C++:团体程序设计天梯赛(正整数A+B)
  5. 在KVM中通过导入qcow2镜像方式安装虚拟机(图形界面)
  6. 最新JustNews资讯博客类模板源码+WordPress内核
  7. oracle 删除空间不足,oracle学习笔记 temp空间不足不能自动释放的解决办法
  8. python进行各项统计检验_Python进行各项统计检验
  9. .animate在360浏览器和谷歌浏览器同时生效
  10. 计算机英语大作业,计算机专业英语大作业.doc