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

相关推荐
Charlie_lll6 分钟前
力扣解题-移动零
后端·算法·leetcode
chaser&upper6 分钟前
矩阵革命:在 AtomGit 解码 CANN ops-nn 如何构建 AIGC 的“线性基石”
程序人生·算法
weixin_4997715515 分钟前
C++中的组合模式
开发语言·c++·算法
初级代码游戏16 分钟前
套路化编程 C# winform 自适应缩放布局
开发语言·c#·winform·自动布局·自动缩放
_waylau19 分钟前
鸿蒙架构师修炼之道-架构师的职责是什么?
开发语言·华为·harmonyos·鸿蒙
2的n次方_30 分钟前
CANN Ascend C 编程语言深度解析:异构并行架构、显式存储层级与指令级精细化控制机制
c语言·开发语言·架构
iAkuya1 小时前
(leetcode)力扣100 62N皇后问题 (普通回溯(使用set存储),位运算回溯)
算法·leetcode·职场和发展
近津薪荼1 小时前
dfs专题5——(二叉搜索树中第 K 小的元素)
c++·学习·算法·深度优先
xiaoye-duck1 小时前
吃透 C++ STL list:从基础使用到特性对比,解锁链表容器高效用法
c++·算法·stl
松☆1 小时前
CANN与大模型推理:在边缘端高效运行7B参数语言模型的实践指南
人工智能·算法·语言模型