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

static关键字的四种用法:面试官问“static有几种用法”,90%的人答不全

上篇聊了const的各种用法,有人后台说想看static。

来了。static是C++里另一个"看着简单,考起来要命"的关键字。

面试的时候,面试官经常问:"static有哪些用法?"

大部分人能说出两三种:静态变量、静态成员函数。但你要问他"还有呢?",很多人就卡住了。

其实static在C++里有四种用法,每种的作用完全不同。今天一次讲清楚。

第一种:静态局部变量

函数里的局部变量加上static,它的生命周期就变成了整个程序运行期间。

void countCalls() { static int count = 0; // 只初始化一次 count++; cout << "调用次数: " << count << endl; } countCalls(); // 输出: 调用次数: 1 countCalls(); // 输出: 调用次数: 2 countCalls(); // 输出: 调用次数: 3

普通局部变量每次函数调用都会重新创建,但static局部变量只初始化一次,之后每次调用都保留上次的值。

在机器人开发里,这种用法常见于计数器、状态标记。比如统计某个函数被调用了多少次,或者标记某个初始化操作是否已经执行过。

要注意一点:static局部变量的初始化是线程不安全的。C++11之后,标准保证了static局部变量的初始化是线程安全的(Magic Statics),但老代码或者老编译器不一定有这个保证。

在机器人开发里,static局部变量还有个经典用法——Meyers单例模式:

http://www.jsqmd.com/news/1185050/

相关文章:

  • Unity XR开发入门:从SDK导入到交互配置的完整指南
  • CSS字体样式(font)[实战指南]
  • 亲身探访广州泰格豪雅官方售后服务中心|详细网点地址与售后热线(2026年7月最新) - 亨得利官方服务中心
  • Unity BlendShape与Animation Clip实现角色动态表情完整指南
  • 2026年7月最新温州劳力士官方售后客服中心地址电话及服务网点分布 - 劳力士官方服务中心
  • 卫星视频目标跟踪:从相关滤波到深度学习的演进与挑战
  • Folium地图可视化实战:从数据到交互式地理看板
  • 宝珀手表网上预订售后保养服务指南权威公示(2026年7月最新) - 宝珀官方售后服务中心
  • Pandas数据清洗速查手册:12个高频函数实战指南
  • Gifski跨平台视频转GIF终极指南:高质量转换与自动化脚本
  • 基于C++20协程的异步网络编程:libfv框架解析与实践指南
  • YOLOv8道路坑洼检测实战:从数据到部署全流程解析
  • 图像锐度评分算法实战:从方差、点锐度到梯度法的选择与优化
  • C++跨平台开发中整数类型陷阱与<cstdint>解决方案
  • 劳力士中国官方售后服务中心|全部网点地址及24小时热线权威信息通告(2026年7月更新) - 劳力士服务中心
  • 如何基于用户需求生成高质量技术博文
  • 2026最新衡水本地漏水检测公司本地精选权威推荐:正规防水补漏公司优选口碑TOP5:卫生间/厨房/阳台/飘窗/地下室渗漏水维修师傅上门 - 即刻修防水
  • Unity游戏开发:3分钟实现角色轮廓高亮效果(Outline Effect)
  • 2026年7月行业内诚信的巴伦公司推荐,功率电感RH系列/磁胶NR电感/车规电感/排磁珠/耦合器,巴伦实力厂家有哪些 - 品牌推荐师
  • Level 2行情数据下载过程和笔记
  • `beautifulsoup4`(简称 BeautifulSoup)是 Python 中最常用、最强大的 HTML 和 XML 解析库之一
  • AI学术写作工具核心功能与实操指南
  • 从洛谷P2234看平衡树实战:STL set与手写Treap解决动态查询
  • C++信号与槽机制:从原理到原生实现,构建松耦合对象通信系统
  • UU远程多屏协助测评,好不好看这个就够了、
  • Sol2:现代C++与Lua交互的零开销绑定库实战指南
  • ICM-42605与PIC18F2682实现高精度运动追踪方案
  • 2026实力之选:复合阻尼隔音板专业品牌机构,深耕声学领域的硬核实力派 - 甄选服务推荐
  • DEGConv革新YOLOv11裂缝检测:方向感知与边缘门控技术解析
  • 亨得利官方钟表服务中心|官方地址及联系电话权威信息通知(2026年7月更新) - 亨得利官方