sizeof和strlen的区别

本文介绍了C语言中的sizeof()和strlen()函数,前者用于计算内存字节数,后者统计字符数量,强调了两者在用途、适用范围和计算内容上的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

sizeof() strlen() 在 C 语言中两个非常常用,它们都与计算内存大小有关,但是它们的作用是不同的。

1、strlen这个函数用于计算字符串(char数组)中字符的数量,不包括结束符'\0'。它返回的是一个整数,表示实际字符的数量。

2、sizeof这是一个运算符,用于获取数据类型或变量在内存中占用的字节数。它可以用于任何数据类型,如基本类型、结构体、数组等,返回的是一个整数。

sizeof() 和 strlen() 的主要区别在于:

  • sizeof() 是一个关键字、运算符,而 strlen() 是一个函数。
  • sizeof() 计算的是变量或类型所占用的内存字节数,而 strlen() 计算的是字符串中字符的个数。
  • sizeof() 可以用于任何类型的数据,而 strlen() 只能用于以空字符 '\0' 结尾的字符串。
  • sizeof() 计算字符串的长度,包含末尾的 '\0',strlen() 计算字符串的长度,不包含字符串末尾的 '\0'。

总结来说:

sizeof关心的是内存占用空间的大小,计算的是实际长度

strlen关注的是字符数组的内容长度,计算的是有效长度

使用strlen需要添加头文件#include<string.h>

//sizeof计算的是数组的实际长度,strlen计算的是数组的有效长度
char cdata[128] = "hello";
	
printf("sizeof:%d\n",sizeof(cdata));//sizeof计算得出cdata[]的大小是 128
printf("strlen:%d\n",strlen(cdata));//strlen计算得出cdata[]的大小是 5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值