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

c++复习自存

static 静态变量用途

一、函数内部 static 局部变量

核心特点

  1. 存储在全局静态存储区,不是栈;程序启动分配内存、程序结束才销毁
  2. 只初始化1次,首次进入函数执行初始化,后续调用跳过初始化
  3. 作用域仍仅限当前函数,外部无法访问

用途

  1. 保存函数跨调用的持久状态(计数器、缓存上次结果)
voidcount(){staticintnum=0;// 仅第一次赋值0num++;printf("%d",num);}// 连续调用输出:1 2 3 4...
  1. 避免重复创建大数组/结构体,减少栈溢出

二、文件域 static 全局变量(函数外)

核心特点

  1. 仍是全局生命周期,但作用域限制在当前.c/.cpp文件
  2. 其他源文件无法通过extern访问,实现文件私有

用途

  1. 封装模块私有数据,防止多文件命名冲突
  2. 实现模块化隔离,仅本文件读写,降低耦合

三、类中 static 成员(C++专属)

1. static 成员变量

  • 不属于某个对象,属于整个类,所有对象共享同一份内存
  • 必须类外初始化
  • 用途:统计类实例总数、全局共享配置(统一参数)
classStudent{public:staticintcnt;// 所有学生共用计数器Student(){cnt++;}};intStudent::cnt=0;

2. static 成员函数

  • 没有this指针,只能访问static成员,不能操作普通成员变量
  • 可直接用类名::函数()调用,无需创建对象
  • 用途:工具类通用方法、操作类全局静态数据

补充:static 修饰函数(文件内)

static void func(){}

  • 函数仅本文件可见,其他文件不能调用,隔离模块接口,防止重名。
http://www.jsqmd.com/news/1106122/

相关文章:

  • 记录一个标记所有new出来的内存的地址加上TAG
  • AI 辅助:Product Hunt 发布复盘:上线当天之前,准备已经开始
  • Cursor Free VIP破解工具:3分钟解除AI编程助手试用限制的终极指南
  • 西安共享茶室平台开发?时段预约锁房技术源码讲解
  • 封装统一多模态客户端(整合文字对话 + 文生图 + 语音转写)
  • 利用金字塔原理学习PHP的具象化的庖丁解牛
  • 汽车电子散热管理:DRV8213驱动器与MF25060V2风扇实战
  • 【小白也能轻松玩转龙虾】虾壳云一键部署入门攻略,分步搭建桌面端 OpenClaw v2.7.9(附最新安装包)
  • React 渲染性能:组件边界、状态下沉与重渲染治理
  • 后端开发者转型AI大模型的必备技能与实战指南
  • AI 辅助:独立开发者技术选型:最好的技术是能让产品活下去
  • AI 辅助:少说漂亮话:基础设施要用事故假设来设计
  • AI 辅助:独立创作:工具应放大作者,而不是替代作者
  • 一文看懂 DDoS 与 CC 攻击:攻击类型全解析 + 完整防护方案
  • 5个场景化解决方案:用taskt告别重复劳动,实现桌面自动化革命
  • Harness Engineering(驾驭工程)简单的演化过程
  • 阿贝云免费云服务器磁盘空间合理分配实操心得
  • 2025了会议纪要还写得慢又漏任务?听脑帮你智能提取任务超省心!
  • 云原生 AI 平台搭建:先把模型服务当普通服务治理
  • 一张图讲清楚:MCP边界
  • “借道”MoP封装,AMD打破“存储墙”与“空间锁”
  • 2.4 中间层:底层驱动与标准库——固收与负债的“稳态输出”
  • 那些与量子纠缠有关的物理概念和现象
  • QKeyMapper:Windows平台专业级全能按键映射引擎架构解析
  • 子任务想换个便宜模型跑?Sub-Agent 这样设计
  • 语音一键转文字超简单!2026多款免费软件详细步骤,新手一看就会
  • 小学算术题
  • 用最新 GPT-5.6 润色论文是一种怎么样的体验?
  • 开源视频生成模型选择
  • SpringBoot+Vue 私人西服定制_leabo管理平台源码【适合毕设/课设/学习】Java+MySQL