C语言—sizeof和strlen的区别

sizeof和strlen的区别

1、两者无联系

2、 sizeof:计算数组,变量,类型所在空间的大小,单位是字节

strlen:求字符串的长度,'\0'之前的字符个数,只针对字符串求长度

3、sizeof是操作符

strlen是库函数,需要引头文件------#include<string.h>

例1:

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
#include<string.h>
int main()
{
	char arr[]="abcdef";
	printf("%d\n",sizeof(arr));
	printf("%d\n",strlen(arr));
	return 0;
}

这里数组类型时char,char所占字节为1,所以sizeof=1✖️7(元素个数)=7;

(数组中的元素✖️类型所占字节数=所占空间的大小)

("abcdef"中包含'\0','\0'也是字符)

例2:

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
#include<string.h>
int main()
{
	char arr1[]="abc";
	char arr2[]={'a','b','c'};
	printf("%d\n",sizeof(arr1));
	printf("%d\n",sizeof(arr2));
	printf("%d\n",strlen(arr1));
	printf("%d\n",strlen(arr2)); 
	return 0;
}

出现arr2为15的原因:

1、这里的15是随机值

2、strlen:求字符串的长度,'\0'之前的字符个数,只有找到'\0'才停止

相关推荐
ZBritney2 分钟前
JAVA中的异常二
java·开发语言
weixin_307779134 分钟前
Jenkins Pipeline:Groovy插件全解析:从原理到实战应用
开发语言·ci/cd·自动化·jenkins·etl
EXtreme358 分钟前
【数据结构】打破线性思维:树形结构与堆在C语言中的完美实现方案
c语言·数据结构·算法··heap·完全二叉树·topk
cici1587410 分钟前
含风电场的十机24时系统机组出力优化算法
人工智能·算法·机器学习
WolfGang00732114 分钟前
代码随想录算法训练营Day45 | 101.孤岛的总面积、102.沉没孤岛、103.水流问题、104.建造最大岛屿
算法·深度优先
2301_7644413315 分钟前
PMC政策文本量化评估
python·算法·信息可视化
〝七夜56916 分钟前
Jsp中动态include和静态include的区别
java·开发语言
木土雨成小小测试员18 分钟前
Python测试开发之跨域请求
开发语言·python
代码游侠20 分钟前
应用——Linux进程编程实例分析
linux·运维·网络·笔记·学习·算法
努力进修22 分钟前
【JavaEE初阶】告别小白!Java IO 流读写 + 文件操作实战
java·开发语言·java-ee