news 2026/8/15 9:27:47

初步理解--strlen函数与sizeof运算符

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
初步理解--strlen函数与sizeof运算符

一.strlen函数

1.定义

strlen函数是用于计算字符串长度的函数

2.基本格式

strlen("字符串/字符数组")

注:strlen函数要包含头文件#include <string.h>

3.逻辑

strlen函数是将strlen函数()内的字符串的长度作为其函数的返回值,即从括号内起始字符开始逐个向后计算,直到 \0 为止
注:计算字符串长度时不会将\0包含在内

4.使用方法


注:1.即使\0不在末位,在中间也会立即停止运算

2.如果结尾没有\0就会出现错误,读出一串乱码(如:烫烫烫烫烫烫)

二.sizeof运算符

1定义

sizeof 是 C语言中的一个关键字也是一个一元操作符,专门用来计算数据类型/变量/表达式的长度,单位是字节

2. 基本语法

sizeof(类型)sizeof表达式

打印时要用%zu打印

printf("%zu",sizeof(类型))

3.特点/逻辑

(1)sizeof计算的是占用内存大小,不是字符串长度
(2)会将字符串末尾的\0计算在内
(3)sizeof的返回值返回的是字节数

(4)sizeof后的()中的表达式是不赋值的

三. sizeof 与 strlen 的区别

特性sizeofstrlen
性质运算符(编译时)库函数(运行时)
作用对象类型、变量、表达式以 ‘\0’ 结尾的字符串
计算内容内存字节数字符个数(不计 ‘\0’)
对字符串包含 ‘\0’不包含 ‘\0’
示例sizeof(“AB”) → 3strlen(“AB”) → 2

四. 总结

strlen 函数和 sizeof 运算符是 C 语言中两个相似却用途不同的工具:

  1. strlen`函数

    • 用途:计算以’\0’结尾的字符串的实际字符长度
    • 特点:运行时计算,不包含结束符 ‘\0’
    • 注意事项:必须包含<string.h>头文件;字符串必须以 ‘\0’`结尾,否则会出现如烫烫烫的错误
  2. sizeof 运算符

    • 用途:计算数据类型、变量或表达式在内存中占用的字节数
    • 特点:编译时计算,返回的是字节大小
    • 注意事项:对字符串会包含 ‘\0’;括号内的表达式不进行赋值操作
  3. 核心区别

    • sizeof 是运算符,在编译时确定结果,计算内存大小
    • strlen 是库函数,在运行时计算,返回字符个数
    • 对于同一个字符串,sizeof的值通常比 strlen大 1(因为包含 ‘\0’)

在实际编程中,应根据具体需求选择使用:需要知道字符串长度时用 strlen,需要知道内存大小时用 sizeof。理解两者的区别有助于避免常见的编程错误,如缓冲区溢出和内存分配不当等问题。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/15 9:27:26

解决ARM64交叉编译GLIBC版本不匹配:从原理到RK3588实战

1. 项目背景与核心问题剖析最近在搞一个嵌入式项目&#xff0c;目标板是RK3588&#xff0c;跑的是ARM64架构的Linux系统&#xff0c;而我自己的开发环境是x86_64的Ubuntu 22.04。这种场景下&#xff0c;交叉编译就成了家常便饭。我用的工具链是aarch64-linux-gnu-gcc&#xff0…

作者头像 李华
网站建设 2026/8/15 9:26:28

NMAP端口状态深度解析:从Open到Filtered的网络安全诊断

1. 端口扫描的基石&#xff1a;为什么状态如此重要 在网络安全和系统运维的日常工作中&#xff0c;端口扫描是获取目标主机网络服务信息最基础、最核心的手段。无论是进行安全评估、排查服务故障&#xff0c;还是做资产梳理&#xff0c;我们都需要知道目标主机上哪些端口是开放…

作者头像 李华
网站建设 2026/8/15 9:24:04

Excel图片交互:从零代码到VBA实现单击放大与平滑动画

1. 从“鸡肋”到“神器”&#xff1a;Excel图片交互的痛点与价值 在数据汇报、产品手册、资产管理等场景中&#xff0c;我们经常需要在Excel里插入大量图片。比如&#xff0c;一份产品目录表&#xff0c;每个产品对应一张缩略图&#xff1b;或者一份员工信息表&#xff0c;需要…

作者头像 李华
网站建设 2026/8/15 9:23:40

把 OData 请求拆到最小颗粒度,SAP Gateway Client 的调试方法与实战思路

SAP 项目里很常见的一种排障场景,是一个原本看起来很简单的 Fiori 页面突然报错。浏览器开发者工具里可能只看到 400 Bad Request、403 Forbidden 或 500 Internal Server Error,SAPUI5 控制台又夹杂着 Model、Binding、Promise 等一大堆信息。这个时候,如果一直停留在浏览器…

作者头像 李华
网站建设 2026/8/15 9:23:11

神经网络激活函数全解析:从ReLU到GELU,如何选择与优化

1. 项目概述&#xff1a;为什么神经网络需要“弯下来”&#xff1f;如果你刚开始接触神经网络&#xff0c;可能会被一堆线性代数运算搞得头大&#xff1a;矩阵乘法、向量加法……乍一看&#xff0c;这不就是个超级复杂的线性回归模型吗&#xff1f;没错&#xff0c;如果没有“激…

作者头像 李华
网站建设 2026/8/15 9:21:16

销售场景成AI落地最佳突破口:从线索挖掘到客户成功的实战指南

1. 从“技术秀场”到“价值战场”&#xff1a;为什么销售是AI落地的试金石 最近和几个做企业服务的朋友聊天&#xff0c;发现一个挺有意思的现象&#xff1a;大家聊起AI&#xff0c;要么是技术部门在搞模型训练、算法优化&#xff0c;要么是市场部门在做智能客服、内容生成。但…

作者头像 李华