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'才停止

相关推荐
辞旧 lekkk7 小时前
【Qt】信号和槽
linux·开发语言·数据库·qt·学习·mysql·萌新
放羊郎7 小时前
基于ORB-SLAM2算法的优化工作
人工智能·算法·计算机视觉
mask哥7 小时前
力扣算法java实现汇总整理(上)
java·算法·leetcode
2zcode7 小时前
运动模糊图像复原的MATLAB仿真与优化
开发语言·matlab
袁雅倩19977 小时前
当吸尘器、筋膜枪都用上Type-C,供电方案该怎么选?浅谈PD取电芯片ECP5702的应用
c语言·开发语言·支持向量机·动态规划·推荐算法·最小二乘法·图搜索算法
如果'\'真能转义说8 小时前
OOXML 文档格式剖析:哈希、ZIP结构与识别
xml·算法·c#·哈希算法
Aaswk8 小时前
Java Lambda 表达式与流处理
java·开发语言·python
万邦科技Lafite9 小时前
京东item_get接口实战案例:实时商品价格监控全流程解析
java·开发语言·数据库·python·开放api·淘宝开放平台
Cyber4K10 小时前
【Python专项】进阶语法-系统资源监控与数据采集(1)
开发语言·python·php
梦梦代码精10 小时前
BuildingAI 上部署自定义工作流智能体:5 个实用技巧
大数据·人工智能·算法·开源软件