×

strlen函数和sizeof的区别 strlen 和 sizeof

前端技术网 前端技术网 发表于2024-02-03 20:52:12 浏览4157 评论0

抢沙发发表评论

一、strlen与sizeof()的区别

1、打开VS2017创建一个C++控制台应用程序。

2、首先,功能不同。sizeof()是操作符,计算任意类型参数所占内存大小。

strlen函数和sizeof的区别 strlen 和 sizeof

3、strlen()是函数,计算以“\0”结束的字符串长度,计算长度不包括“\0”。

4、其次,参数不同。当将字符数组作为sizeof()的参数时,计算字符数组占用内存大小。

5、当将字符数组作为strlen()的参数时,字符数组转化为char*。

二、strlen和sizeof有什么区别

在C语言中,`strlen`和`sizeof`是两个常用的操作符功能不同。

1.`strlen`是一个字符串函数,用于计算给定字符串的长度,即字符串中字符的数量(不包括结尾的空字符'\0')。它接收一个指向字符串的指针作为参数,并返回一个表示字符串长度的整数值。

```c

strlen函数和sizeof的区别 strlen 和 sizeof

charstr[]="Hello";

intlength=strlen(str);//length=5

```

2.`sizeof`是一个运算符,用于计算给定类型或变量所占内存的大小(以字节为单位)。它可以用于计算任何类型的大小,包括基本数据类型(如int、float)和自定义结构体、数组等。在使用`sizeof`时,不需要求值,它在编译时直接返回结果。

```c

intsizeInt=sizeof(int);//sizeInt=4(假设int占4字节)

intarr[5];

intsizeArr=sizeof(arr);//sizeArr=20(假设int占4字节,数组大小为5个int类型)

```

需要注意的是,`sizeof`计算的是数据类型本身所占用的内存空间大小,而不是指针所引用的对象的大小。对于指针类型,`sizeof`返回指针的大小,而不是指向的对象的大小。

总结起来,`strlen`用于获取字符串的实际长度,而`sizeof`用于获取变量、类型或对象所占用的内存大小。

三、strlen与sizeof的区别

1、strlen和sizeof代表的含义不同

在定义时,要知道到strlen是一个函数,它用来计算指定字符串str的长度,但不包括结束字符(即null字符)。而sizeof是一个单目运算符,而不是一个函数,它的参数可以是数组、指针、类型、对象、函数等。这就是strlen和sizeof的最本质区别。

如果你不能提前区分strlen和sizeof所表示的含义和领域,那么就没有研究下去的必要了。一旦运用是发生混淆或者用错,那么肯定不可能完成既定目标。在使用时一定要牢记这一点最基本的区别

2、strlen和sizeof的功能不一样

想要区分strlen和sizeof,那么就要了解strlen和sizeof两者都有什么功能。只有知道了strlen和sizeof的功能,才能更好的去灵活运用它们。

相比较来说sizeof的功能能比较简单,主要是:获得保证,能容纳实现所建立的最大对象的字节大小。而strlen的功能就比较多和繁琐了,是返回字符串的长度,这个字符串可能是自己定义的,也可能是内存中随机的,这个函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL,返回的长度大小不包括NULL。

四、strlen和sizeof的区别

1、strlen和sizeof代表的含义不同

在定义时,要知道到strlen是一个函数,它用来计算指定字符串str的长度,但不包括结束字符(即null字符)。而sizeof是一个单目运算符,而不是一个函数,它的参数可以是数组、指针、类型、对象、函数等。这就是strlen和sizeof的最本质区别。

如果你不能提前区分strlen和sizeof所表示的含义和领域,那么就没有研究下去的必要了。一旦运用是发生混淆或者用错,那么肯定不可能完成既定目标。在使用时一定要牢记这一点最基本的区别

2、strlen和sizeof的功能不一样

想要区分strlen和sizeof,那么就要了解strlen和sizeof两者都有什么功能。只有知道了strlen和sizeof的功能,才能更好的去灵活运用它们。

相比较来说sizeof的功能能比较简单,主要是:获得保证,能容纳实现所建立的最大对象的字节大小。而strlen的功能就比较多和繁琐了,是返回字符串的长度,这个字符串可能是自己定义的,也可能是内存中随机的,这个函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL,返回的长度大小不包括NULL。

关于strlen函数和sizeof的区别,strlen 和 sizeof的介绍到此结束,希望对大家有所帮助。