sizeof 和 strlen 的区别

简介: `sizeof` 和 `strlen` 是 C 和 C++ 中常用的运算符/函数,功能和用途不同

sizeofstrlen 是 C 和 C++ 编程语言中常用的两个运算符/函数,它们的功能和用途有很大不同:

sizeof

  1. 类型sizeof 是一个运算符。
  2. 用法:用于获取数据类型或变量所占的字节数。
  3. 计算对象:可以用于任何数据类型,包括基本数据类型(如 int, char, float 等)、结构体、数组和指针等。
  4. 编译时计算sizeof 在编译时就计算出结果,因此它的值对编译器是确定的。
  5. 示例
    int a = 10;
    printf("%zu\n", sizeof(a));         // 输出 int 类型所占的字节数
    printf("%zu\n", sizeof(int));        // 输出 int 类型所占的字节数
    char arr[10];
    printf("%zu\n", sizeof(arr));        // 输出数组 arr 占用的字节数
    

strlen

  1. 类型strlen 是一个函数。
  2. 用法:用于计算 C 字符串的长度,即字符串中字符的数量,不包括结束的空字符('\0')。
  3. 计算对象:只能用于类型为 char* 的 C 字符串。
  4. 运行时计算strlen 在运行时计算字符串的长度,所以在程序运行时会遍历字符数组,直到遇到空字符。
  5. 示例
    char str[] = "Hello, World!";
    printf("%zu\n", strlen(str));       // 输出 13,因为字符串中有 13 个字符
    

总结

  • sizeof 用于获取类型或变量占用的内存大小,而 strlen 用于计算 C 字符串的长度(不包括空字符)。
  • sizeof 是编译时运算,而 strlen 是运行时运算。
相关文章
|
自然语言处理 物联网 Swift
零一万物开源Yi-VL多模态大模型,魔搭社区推理&微调最佳实践来啦!
近期,零一万物Yi系列模型家族发布了其多模态大模型系列,Yi Vision Language(Yi-VL)多模态语言大模型正式面向全球开源。
|
10月前
|
人工智能 数据安全/隐私保护 数据中心
“芯片围城”下国产AI要放缓?答案或截然相反
12月2日,美国对华实施新一轮出口限制,将140余家中国企业列入贸易限制清单。对此,中国多个行业协会呼吁国内企业谨慎选择美国芯片。尽管受限企业表示影响有限,但此事件引发了关于AI领域芯片供应的担忧。华为云推出的昇腾AI云服务,提供全栈自主的算力解决方案,包括大规模算力集群、AI框架等,旨在应对AI算力需求,确保算力供给的稳定性和安全性,助力中国AI产业持续发展。
174 3
|
消息中间件 算法 开发者
【Qt面试题】多线程情况下, Qt中的信号槽分别在什么线程中执行, 如何控制?
【Qt面试题】多线程情况下, Qt中的信号槽分别在什么线程中执行, 如何控制?
1067 1
|
12月前
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
1101 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
|
关系型数据库 Java 分布式数据库
PolarDB产品使用问题之部署到服务器上的Java应用(以jar包形式运行)无法连接,如何解决
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
人工智能 API 开发工具
「寻找热爱技术创作的你:写下你在技术探中的实践和思考」 零一万物大模型开放平台 第二天零一万物大模型开放平台 第二天 我爱我园
零一万物大模型开放平台支持OpenAI SDK,适配Python 3.7.1+。在解决Python版本不兼容问题(需用Python 3.8.10+)后,安装`openai` SDK,接着配置API基址和密钥,初始化客户端。成功调用`ChatCompletion.create`创建聊天完成例程,输出与预期一致。实现前需在平台注册并验证用户信息,获取API Key。
|
开发框架 前端开发 JavaScript
采用C#.Net +JavaScript 开发的云LIS系统源码 二级医院应用案例有演示
技术架构:Asp.NET CORE 3.1 MVC + SQLserver + Redis等 开发语言:C# 6.0、JavaScript 前端框架:JQuery、EasyUI、Bootstrap 后端框架:MVC、SQLSugar等 数 据 库:SQLserver 2012
158 0
|
小程序 API Android开发
【uniapp】 获取系统信息
【uniapp】 获取系统信息
296 0
|
存储 JSON 定位技术
4.Cesium中实体Entity的增删改查及性能优化(超详细)
Cesium 作为一个功能强大的 WebGL 三维地球仪库,内置了丰富的三维地图展示能力。在 Cesium 中,我们可以通过 Entity(实体)在三维场景中添加和控制各种三维对象,如点、线、面、模型等。本文将介绍 Cesium 中实体的增删改查操作。
3617 0
|
JavaScript 安全
Vue综合案例与axios
Vue综合案例与axios
209 0