当前位置: 首页 > news >正文

C++中全局变量,静态变量,静态局部变量 的初始化和内存分配问题

1、这些变量的存储位置

  • 全局变量和(所有类型的)静态变量都存储在全局(或称静态)数据区。
  • 全局变量和(所有类型的)静态变量如果没有提供初始值,则由编译器初始化为0(如果是类的话调用默认构造函数)。

在全局数据区,内存中所有的字节默认值都是0x00。

2、何时发生初始化 和 内存分配

先明确:这些变量的内存分配和初始化都是一起进行的,没有分开。

  • 静态全局变量、全局变量 和 类的静态数据成员都在编译时,即,程序运行前完成内存分配并初始化。
  • 静态局部变量则是在第一次使用到的时候分配内存并初始化。

3、静态局部变量的特点

  • 静态局部变量的生命期是整个程序的生命期。 静态局部变量在该函数调用结束时,不会销毁,而是随整个程序结束而结束。
  • 但是别的函数调用不了该变量。
  • 只在第一次用到的时候初始化一次,以后每次函数调用时,不在赋初始值,而是使用上次函数调用结束时的值

C/C++中全局变量,静态局部变量,局部变量的初始化问题

相关文章:

  • C++ 模板实现单例模式
  • 《C++ Primer》 异常
  • C++父类和子类指针的相互赋值和转换
  • 算法设计与分析————期末死亡冲刺
  • 现代软件工程————期末死亡冲刺
  • std::string::npos 常量解析
  • 练习4-3 求给定精度的简单交错序列部分和 (15 分)本题要求编写程序,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... 直到最后一项的绝对值不大于给定精度eps。
  • 浙大版《C语言程序设计(第4版)》题目集 练习4-6 猜数字游戏 (15 分)
  • 练习4-7 求e的近似值 (15 分)自然常数 e 可以用级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算。本题要求对给定的非负整数 n,求该级数的前 n+1 项和。
  • 数组输入输出的方法
  • 习题:贴邮票
  • 习题:遍历搜寻
  • 习题:哥德巴赫猜想
  • 习题:数字拆分
  • 习题:质数统计
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • Android单元测试 - 几个重要问题
  • android图片蒙层
  • E-HPC支持多队列管理和自动伸缩
  • gops —— Go 程序诊断分析工具
  • Just for fun——迅速写完快速排序
  • Node项目之评分系统(二)- 数据库设计
  • supervisor 永不挂掉的进程 安装以及使用
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 观察者模式实现非直接耦合
  • 如何编写一个可升级的智能合约
  • 如何设计一个比特币钱包服务
  • 探索 JS 中的模块化
  • 微服务入门【系列视频课程】
  • 小而合理的前端理论:rscss和rsjs
  • 用jquery写贪吃蛇
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • ​什么是bug?bug的源头在哪里?
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (+4)2.2UML建模图
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (TOJ2804)Even? Odd?
  • (二)linux使用docker容器运行mysql
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (六)软件测试分工
  • (四) 虚拟摄像头vivi体验
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .net 按比例显示图片的缩略图
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .stream().map与.stream().flatMap的使用
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @Responsebody与@RequestBody
  • @SpringBootApplication 包含的三个注解及其含义
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [ 常用工具篇 ] POC-bomber 漏洞检测工具安装及使用详解
  • [145] 二叉树的后序遍历 js