当前位置: 首页 > 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.gsyq.cn/news/1618093.html

相关文章:

  • Cursor Free VIP破解工具:3分钟解除AI编程助手试用限制的终极指南
  • 西安共享茶室平台开发?时段预约锁房技术源码讲解
  • 【小白也能轻松玩转龙虾】虾壳云一键部署入门攻略,分步搭建桌面端 OpenClaw v2.7.9(附最新安装包)
  • AI 辅助:独立创作:工具应放大作者,而不是替代作者
  • 后端开发者转型AI大模型的必备技能与实战指南
  • AI 辅助:少说漂亮话:基础设施要用事故假设来设计
  • 5个场景化解决方案:用taskt告别重复劳动,实现桌面自动化革命
  • Harness Engineering(驾驭工程)简单的演化过程
  • 那些与量子纠缠有关的物理概念和现象
  • “借道”MoP封装,AMD打破“存储墙”与“空间锁”
  • 2.4 中间层:底层驱动与标准库——固收与负债的“稳态输出”
  • 一张图讲清楚:MCP边界
  • 子任务想换个便宜模型跑?Sub-Agent 这样设计
  • 语音一键转文字超简单!2026多款免费软件详细步骤,新手一看就会
  • 开源视频生成模型选择
  • SpringBoot+Vue 私人西服定制_leabo管理平台源码【适合毕设/课设/学习】Java+MySQL
  • 用最新 GPT-5.6 润色论文是一种怎么样的体验?
  • 一张图讲清楚:Codex上下文
  • SPARK技术:5G/6G无线通信中的辐射模式压缩革命
  • 分布式系统到 AI 创业:架构师转型 CEO 的三个误区
  • 3个步骤深度解析RTL8821CU驱动:完全解决Linux无线网卡兼容性问题
  • Python 异步 检索增强:端到端延迟要按阶段拆开
  • 如何轻松实现跨平台输入法词库转换:深蓝词库转换工具完全指南
  • 2025了钉钉会议转任务还效率低?听脑真能一键解决吗?
  • AI 辅助:刷题系统:如何把题解生成变成可验证流程
  • 英语口语基础语法学习
  • CVPR 2026|AnyVisLoc:为真实低空无人机视觉定位建立统一基准
  • AI 辅助:前端框架反模式:过度封装、状态滥用与副作用失控
  • 【Springboot毕设全套源码+文档】基于springboot+协同过滤课程推荐的线上安全教育平的设计与实现(丰富项目+远程调试+讲解+定制)
  • STM32 printf 串口重定向代码完整解析