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

sizeof 和 strlen 比较

sizeof 和 strlen 在 C 语言中都是用于获取某种“大小”的,但它们之间有着显著的区别。

sizeof

sizeof 是一个运算符,用于计算数据类型或对象在内存中的大小(以字节为单位)。它可以在编译时确定结果,因为它计算的是类型或对象在内存中的固定大小。

  • 用法sizeof(type) 或 sizeof(object)
  • 返回值size_t 类型的值,表示大小(以字节为单位)
  • 特点
    • 在编译时确定结果
    • 可以用于任何数据类型(包括数组、结构体等)
    • 对于数组,sizeof 返回整个数组的大小(包括所有元素)

strlen

strlen 是一个函数,用于计算字符串的长度(不包括终止的 null 字符)。它定义在 <string.h> 头文件中,并接受一个指向以 null 结尾的字符串的指针作为参数。

  • 用法strlen(const char *str)
  • 返回值size_t 类型的值,表示字符串的长度(不包括终止的 null 字符)
  • 特点
    • 在运行时确定结果
    • 只能用于以 null 结尾的字符串
    • 如果字符串没有以 null 结尾,strlen 可能会继续读取内存直到遇到随机的 null 字符或导致程序崩溃

示例

#include <stdio.h>#include <string.h>int main() {char str[] = "Hello, World!";// 使用 sizeofsize_t size = sizeof(str); // 返回整个数组的大小(包括终止的 null 字符)printf("Size of str: %zu bytes\n", size);// 使用 strlensize_t len = strlen(str); // 返回字符串的长度(不包括终止的 null 字符)printf("Length of str: %zu characters\n", len);return 0;}

输出:

Size of str: 14 bytes 
Length of str: 13 characters

注意,在这个例子中,sizeof(str) 返回的是整个数组 str 的大小(包括终止的 null 字符),而 strlen(str) 返回的是字符串 "Hello, World!" 的长度(不包括终止的 null 字符)。

http://www.lryc.cn/news/379087.html

相关文章:

  • 音视频开发—FFmpeg 打开摄像头进行RTMP推流
  • D触发器(D Flip-Flop)与D锁存器(D Latch)
  • JDK19特性
  • sql语句中常用的函数有那些
  • odoo17 小变更3 Warning、 “attrs “和 “states “不再用
  • Unity3d 游戏暂停(timeScale=0)引起的deltaTime关联的系列问题解决
  • 服务端代码编写中MySql大小写在Java中报错问题解决
  • CRMEB 多店商品详情页装修说明
  • Redis-使用 jedis 操作数据
  • 简说PIP换源
  • django学习入门系列之第三点《CSS基础样式介绍2》
  • 分布式光纤测温DTS在工程现场中稳定性与可靠性如何?
  • PHP多线程模块parallel的编译安装和多线程编程演示
  • 记录grid布局属性
  • 12.爬虫---PyMysql安装与使用
  • VS2022遇到的两个问题
  • 【Android14 ShellTransitions】(六)SyncGroup完成
  • 技术管理转型之战:决策之道-管理中的智慧与策略
  • Shell脚本:条件语句(if、case)
  • 在Linux上为Windows目标配置Qt交叉编译
  • Introduction to linear optimization 第 2 章课后题答案 11-15
  • Java——包
  • Pipeline知识小记
  • postman国内外竞争者及使用详解分析
  • 人工智能对决:ChatGLM与ChatGPT,探索发展历程
  • 探索Python元类的奥秘及其应用场景
  • C语言基础关键字的含义和使用方法
  • 【Golang - 90天从新手到大师】Day09 - string
  • 网络安全与区块链技术:信任与安全的融合
  • MySQL之复制(九)