sizeof 和 strlen 的区别

简介: `sizeof` 和 `strlen` 是 C 和 C++ 中常用的运算符/函数,功能和用途不同

sizeofstrlen 是 C 和 C++ 编程语言中常用的两个运算符/函数,它们的功能和用途有很大不同:

sizeof

  1. 类型sizeof 是一个运算符。
  2. 用法:用于获取数据类型或变量所占的字节数。
  3. 计算对象:可以用于任何数据类型,包括基本数据类型(如 int, char, float 等)、结构体、数组和指针等。
  4. 编译时计算sizeof 在编译时就计算出结果,因此它的值对编译器是确定的。
  5. 示例
    int a = 10;
    printf("%zu\n", sizeof(a));         // 输出 int 类型所占的字节数
    printf("%zu\n", sizeof(int));        // 输出 int 类型所占的字节数
    char arr[10];
    printf("%zu\n", sizeof(arr));        // 输出数组 arr 占用的字节数
    

strlen

  1. 类型strlen 是一个函数。
  2. 用法:用于计算 C 字符串的长度,即字符串中字符的数量,不包括结束的空字符('\0')。
  3. 计算对象:只能用于类型为 char* 的 C 字符串。
  4. 运行时计算strlen 在运行时计算字符串的长度,所以在程序运行时会遍历字符数组,直到遇到空字符。
  5. 示例
    char str[] = "Hello, World!";
    printf("%zu\n", strlen(str));       // 输出 13,因为字符串中有 13 个字符
    

总结

  • sizeof 用于获取类型或变量占用的内存大小,而 strlen 用于计算 C 字符串的长度(不包括空字符)。
  • sizeof 是编译时运算,而 strlen 是运行时运算。
相关文章
|
5月前
|
编译器 C语言
sizeof,sizeof与strlen的区别
sizeof,sizeof与strlen的区别
45 0
sizeof,sizeof与strlen的区别
|
4月前
|
C语言
sizeof与strlen的使用及其区别
sizeof与strlen的使用及其区别
sizeof与strlen的使用及其区别
|
5月前
|
存储 编译器
strlen()和sizeof()的区别
strlen()和sizeof()的区别
34 0
strlen和sizeof详解
strlen和sizeof详解
81 0
|
5月前
strlen与sizeof 的基本用法
strlen与sizeof 的基本用法
38 0
|
5月前
|
Serverless
sizeof和strlen的区别【详解】
sizeof和strlen的区别【详解】
51 0
|
10月前
|
C语言
strlen和sizeof的区别
strlen和sizeof的区别
74 0
|
10月前
strlen与sizeof的区别
strlen与sizeof的区别
37 0
|
11月前
sizeof和strlen的对比
sizeof和strlen的对比
41 0
sizeof与strlen区别
sizeof是关键字,参数可以是各种数据(包括函数,类型,对象,数组,指针……)用于计算数据所占字节大小 strlen是函数,参数类型必须是字符型指针(char *),用于计算字符串,从字符串的第一个地址开始遍历,直到遇到‘\0’停止
78 0