0
点赞
收藏
分享

微信扫一扫

strlen和sizeof

十日十月Freddie 2022-01-26 阅读 85
c语言

strlen以'\0'为结束符号!!!

(超小声的:记得点赞收藏加关注呦~)

目录

一、作用

1.strlen

2.sizeof

二、代码示例实验

1.strlen实验

(1) strlen和有'\0'

(2)strlen和无'\0'

2.sizeof实验

(1)sizeof和有'\0'

(2)sizeof和无'\0'


一、作用

1.strlen

2.sizeof

二、代码示例实验

1.strlen实验

(1) strlen和有'\0'

代码:

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

运行结果:

运行结果分析:是字符串真实长度,因为有'\0'作为结束符号,所以strlen读到'\0'直接结束读取(所读长度不包含'\0')

(2)strlen和无'\0'

代码:

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

运行结果:

运行结果分析:运行结果其实是不一定的,产生“19”只是碰巧原因(虽然VS2019每次都会产生这个数),因为strlen以'\0'为结束符号,没有'\0'就说明没结束,strlen会接着向后读取(这时候应该是随机读取)直到读到'\0',因为后面是随机读取,所以我们也不知道什么时候读取到'\0'所以读到的长度不一定

2.sizeof实验

(1)sizeof和有'\0'

代码:

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

运行结果:

运行结果分析:每个char类型占1个字节,char类型的arr1数组有4个元素,每个元素占1字节,所以所占空间为4字节

(2)sizeof和无'\0'

代码:

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

运行结果:

运行结果分析:sizeof不以'\0'为结束符号,依然是因为每个char类型占1个字节,char类型的arr2数组有3个元素,每个元素占1字节,所以所占空间为3字节

举报

相关推荐

0 条评论