首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

sizeof和strlen的区别

简单介绍: . sizeof是一个操作符,是用来计算操作数的所占内存的大小的,单位是字节 strlen是用来计算字符串的长度的一个函数,需要引用头文件string.h 区别在于sizeof是操作符...,而strlen是一个函数 . sizeof是不关心内存中所存放的数是多少的,只关心内存中的数所占几个字节 而strlen则需要关系内存中的数的多少,strlen函数用来计算字符串的长度,其计算的终点是...字符‘\0’,只要strlen函数遇到了‘\0’,就会停止计算字符串的长度,得出最终的字符串的长度大小 ps:如果字符串中没有‘\0’,则strlen函数就会继续往下寻找,直到找到‘\0’为止,这可能会造成越界访问...,使得其得出的字符串长度值错无并且其值的大小是一个随机的值 小练习: 我在网上看见了一个关于sizeof和strlen函数的有趣的题目,有利于我们去理解题目之间的区别,在这里我分享给大家: #include

5000

c语言strlen函数的模拟实现

1.strlen函数介绍 strlen的功能: 函数返回字符串str 的长度( 即空值结束符之前字符数目)。...; printf("%zd\n",strlen(str)); printf("%zd\n",sizeof(str)); } 输出结果如下图所示: 我们会发现 : sizeof(str); 比strlen...(str) 的结果多一 这是因为strlen()函数不统计’\0’ ,而sizeof统计’\0’ (因为统计的是整个数组的大小) 在监视窗口里我们也可以证实‘\0’的存在: 下面是strlen()...函数的官方解释: 2.strlen()函数的模拟实现 (1)循环计数法 我们在了解了strlen()函数的功能后,很容易想到利用 指针传递字符串地址,然后判断是否 == ‘\0’的操作来进行计数,代码如下...; unsigned int len = strlen(str); printf("len is %zd\n",len); len = my_strlen(str); printf("my len

7010

strlen,sizeof,scanf对字符串计算

1 strlen,sizeof strlen,sizeof都可以对字符串长度进行计算 char test[]= “hello” 这种双引号字符串后面默认是有个 空字符\0 sizeof...(test) 为6 strlen (test) 为5 sizeof:可用于任何变量名、类型名或常量值,当用于变量名(不是数组名)或常量时,不需要加括弧...strlen:从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结知束符'\0'为止,然后返回计数器值。...sizeof 可以用类型做参数,strlen 只能用 char* 做参数,且必须是以 \0 结尾的。数组做sizeo的参数不退化,传递给strlen就退化为指针了。...sizeof是在编译的时候生效的,strlen是函数,在运行时生效。 2 scanf scanf是从标准输入设备获取数据。以串口为例,使用串口助手发送数据的话,需要勾选发送新行。

7010
领券