C++如何计算数组长度_C++ sizeof运算符与std::size用法详解


C++中计算数组长度常用sizeof运算符和std::size函数。1. 使用sizeof时,通过sizeof(arr)/sizeof(arr[0])计算元素个数,仅在数组未退化为指针时有效,如作为函数参数则失效。2. C++17引入的std::size语法简洁、安全,支持原生数组和STL容器,编译时求值,但需较新标准支持。3. 动态分配数组和传参后的数组不可用sizeof正确获取长度,应优先使用std::size或手动记录长度。

c++如何计算数组长度_c++ sizeof运算符与std::size用法详解

在C++中,计算数组长度有多种方法,常用的包括sizeof运算符和std::size函数。它们各有适用场景,理解其原理有助于写出更安全、清晰的代码。

使用 sizeof 计算数组长度

sizeof是C++内置的编译时运算符,用于获取数据类型或变量所占的字节数。对数组使用sizeof时,可以结合元素大小来计算元素个数。

基本公式为:

数组长度 = sizeof(数组) / sizeof(数组第一个元素)

示例:

int arr[] = {1, 2, 3, 4, 5};
int length = sizeof(arr) / sizeof(arr[0]);
// sizeof(arr) 返回 20(假设int为4字节)
// sizeof(arr[0]) 返回 4
// length = 20 / 4 = 5

注意:这种方法只在数组未退化为指针时有效。一旦数组作为参数传入函数,它会退化为指针,此时sizeof(arr)返回的是指针大小(如8字节),而非整个数组大小,结果将错误。

使用 std::size 获取数组长度

C++17起引入了std::size函数,定义在<iterator></iterator>头文件中,用于安全地获取数组或标准容器的元素数量。

百度文心百中 百度文心百中

百度大模型语义搜索体验中心

百度文心百中 251 查看详情 百度文心百中 示例:

#include <iterator>
int arr[] = {10, 20, 30};
auto length = std::size(arr); // 返回 3

优点:

  • 语法简洁,语义明确
  • 支持原生数组和STL容器(如vector、array)
  • 在编译时求值,无运行时开销
  • 避免手动计算出错

限制:需要C++17及以上标准支持。若项目使用较老版本编译器,可能无法使用。

常见误区与注意事项

以下情况容易导致数组长度计算错误:

  • 数组传参后使用sizeof:函数形参中的数组实际是指针,sizeof不再有效
  • 动态分配的数组new[]malloc创建的数组无法用sizeof获取长度,需自行记录
  • 字符数组与字符串:含空字符的字符串长度比sizeof计算值小1,注意区分字符数与有效内容长度

推荐做法:优先使用std::size;若不支持C++17,可在作用域内用sizeof(arr)/sizeof(arr[0]),并避免在函数参数中使用原生数组。

基本上就这些。掌握这两种方法的区别和适用范围,能帮助你在不同场景下正确获取数组长度。

以上就是C++如何计算数组长度_C++ sizeof运算符与std::size用法详解的详细内容,更多请关注其它相关文章!


# 动态分配  # 一般人怎么找网站推广呢  # 营销推广邮件  # 北京品牌营销推广方案  # 西安烫发店推广招聘网站  # 广州seo排名热门公司  # 池州网站优化公司电话  # seo服务器网络不稳  # seo 15天  # 温江区网站网络推广平台  # seo店铺描述灰色  # 求值  # 第一个  # c++  # 的是  # 第三方  # 自定义  # 微软  # 百中  # 随机数  # 运算符  # 作用域  # 区别  # 字节  # 数组长度 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 如何通过settings.json个性化您的VS Code体验  PPT智能排版生成入口 免费PPT内容自动生成平台  抖音评论无法发送如何修复 抖音评论功能操作指南  人教版电子教材在线获取指南  Safari浏览器自动填表功能失效怎么办 Safari表单管理修复  全球各国上班时间表外贸邮件时间  《360浏览器》设置摄像头权限方法  银信通自动开通原因揭秘  为什么XML解析器对大小写敏感? 理解XML规范中的大小写规则与最佳实践  《东方财富》条件单关闭方法  虫虫助手如何更新游戏  Python高效统计字典嵌套列表值在目标列表中的出现次数  《地下城堡4:骑士与破碎编年史》墓穴挑战125攻略  钉钉任务无法提醒如何处理 钉钉任务提醒优化方法  抖音商城官网是什么_抖音商城官方网址与访问方法  多闪APP官方下载安装入口_多闪最新版本获取入口  我居然低估了 DeepSeek,这次更新它做到了这些!  向往的生活小游戏启动处_向往的生活小游戏立即启动  原子笔记app误删找回教程  魔法祈幻界兑换码礼包大全  Lar*el 关联查询:同时筛选父表与子表数据的高效策略  《百度畅听版》关闭兴趣推荐方法  AO3中文版手机快速通道_AO3最新稳定链接更新  iPhone14开启Apple TV遥控设置  怎样让Windows 11的开始菜单恢复经典样式_Open-Shell工具使用指南【怀旧】  《金山词霸》语音翻译方法  快手缓存清理方法  sublime怎么在文件中显示代码结构大纲_sublime符号列表功能  抖音号显示企业机构号是什么意思?企业机构号申请条件是什么?  秋风萧瑟洪波涌起中的萧瑟指的是什么  《异星探险家》古怪的物品作用介绍  PHP中获取HTTP响应状态消息:方法与限制  如何在CSS中使用absolute实现登录弹窗居中_transform translate结合  海棠阅读网页版_进入海棠网页版在线阅读中心  邮政快递寄件查询入口 邮政快递收件查询入口  J*aScript模块加载器_RequireJS原理分析  《广发易淘金》国债逆回购操作教程  《蓝色星原:旅谣》坐骑获取攻略  泰拉瑞亚网页版在线登录入口 泰拉瑞亚官方正版入口  《爱笔思画x》魔棒工具抠图教程  Symfony路由参数转换器:实体存在性验证与错误处理策略  申通快递物流信息查询 申通快递包裹状态追踪  猫眼电影app如何筛选支持退改签的影院_猫眼电影退改签影院筛选方法  夸克浏览器资源嗅探怎么用 夸克浏览器网页资源下载技巧【教程】  荣耀 Magic10 Pro 系统更新提示失败_荣耀 Magic10 Pro 升级修复  中大网校app做题记录清除方法  Win10运行窗口在哪里打开 Win10调出运行命令框快捷键【技巧】  PDF如何批量加注释_PDF多文件批注高亮操作教程  Retrofit根路径POST请求:@POST("/") 的应用与解析  Win11怎么开启HDR_Windows 11显示器画质增强设置 

 2025-11-30

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.