C语言———sizeof和strlen的区别

        在了解这两个的“东西”的区别之前,我们要首先知道这两个是啥,干啥的。

1、“sizeof”是一个在C和C++编程语言中使用的运算符。它用于获取一个数据类型或变量所占用的内存大小(以字节为单位)。该运算符在编程中经常用于计算数据结构和数组的大小,以便在分配内存或进行内存操作时进行正确的处理。

sizeof (type)  其中,type可以是数据类型(如intcharfloat等)或者是一个具体的变量名。运算符返回一个size_t类型的值,表示给定类型或变量所占用的内存大小。

获取int类型和float类型的大小

#include <stdio.h>

int main() {
    printf("Size of int: %d\n", sizeof(int));
    printf("Size of float: %d\n", sizeof(float));

    return 0;
}

2、“strlen”是一个C标准库函数,用于计算字符串的长度,即字符串中字符的个数(不包括字符串末尾的空字符 \0)。它位于<string.h>头文件中,因此在使用该函数时需要包含这个头文件。

strlen的原型如下:

size_t strlen(const char *str);

参数str是一个指向以null-terminated(以空字符 \0 结尾)的C字符串的指针。函数将从传入的指针位置开始计算,直到遇到字符串末尾的空字符 \0 为止,然后返回计算得到的字符串长度,以size_t类型(无符号整数)表示。

 

#include <stdio.h>
#include <string.h>

int main() {
    int size1 = 0;
    char *str = "Hello, World!";
    size1 = strlen(str);
    
    printf("Length of the string: %d\n", size1);

    return 0;
}

        那他们有那些区别呢?

区别:

1sizeof是一个操作符,strlen是库函数;

2sizeof的参数可以是数据的类型,也可以是变量,而strlen只能以结尾为’\0’的字符串做参数;

3)编译器在编译时就计算出了sizeof的结果。而strlen函数必须在运行时才能计算出来。并且sizeof计算的是数据类型占内存的大小,而strlen计算的是字符串实际的长度;

4)数组做sizeof的参数不退化,传递给strlen就退化为指针了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值