sizeof

简介: 【6月更文挑战第17天】

sizeofstrlen 是两个在C语言编程中常用的操作符和函数,它们都与测量数据的大小有关,但用途和行为有所不同。

sizeof 操作符

  1. 用途: sizeof 是C语言的一个关键字,用来获取数据类型或变量在内存中所占的字节数。
  2. 语法: sizeof(数据类型或变量)
  3. 特点:
    • sizeof 是在编译时计算的,即它在编译阶段就确定了所需的内存大小。
    • 它可以用来获取基本数据类型(如 int, float, char 等)或复合数据类型(如数组、结构体等)的大小。
    • sizeof 返回的是类型或变量所占的总字节数,而不是元素的个数。
    • sizeof 可以用于任何数据类型,包括指针。

应用示例:

int main() {
   
    int a = 10;
    char str[] = "Hello, World!";

    printf("Size of int: %zu bytes\n", sizeof(a)); // 输出: Size of int: 4 bytes(假设int为4字节)
    printf("Size of char array: %zu bytes\n", sizeof(str)); // 输出: Size of char array: 15 bytes(包含字符串和结束符'\0')
    return 0;
}

strlen 函数

  1. 用途: strlen 是C语言标准库函数,用于计算以空字符('\0')结尾的字符串的长度。
  2. 语法: strlen(const char *str)
  3. 特点:
    • strlen 是在运行时计算的,即它在程序执行时确定字符串的长度。
    • 它只能用于以空字符结尾的字符串,不能用于数组或其他数据类型。
    • strlen 计算的是字符串中字符的数量,不包括结尾的空字符。
    • 如果字符串未以空字符结尾,strlen 将一直读取直到遇到内存中的空字符,这可能导致不确定的行为。

应用示例:

#include <stdio.h>
#include <string.h> // 包含strlen函数的头文件

int main() {
   
    char str[] = "Hello, World!";

    printf("Length of string: %zu\n", strlen(str)); // 输出: Length of string: 13
    return 0;
}

区别总结:

  • sizeof 是编译时操作,strlen 是运行时操作。
  • sizeof 可以用于任何数据类型,strlen 只能用于以空字符结尾的字符串。
  • sizeof 返回的是整个数据结构的字节数,strlen 返回的是字符串中字符的数量。
  • 使用 sizeof 时不需要初始化数据,使用 strlen 时必须确保字符串以空字符结尾。
目录
相关文章
|
6月前
|
编译器 C语言
sizeof,sizeof与strlen的区别
sizeof,sizeof与strlen的区别
56 0
sizeof,sizeof与strlen的区别
strlen和sizeof详解
strlen和sizeof详解
84 0
|
6月前
|
存储 C语言
关于sizeof介绍与分享给大家介绍
关于sizeof介绍与分享给大家介绍
sizeof和strlen的对比
sizeof和strlen的对比
51 0
|
编译器 C++
memset的坑
memset 作为对内存初始化的函数,还是有不少坑和误区的,今天就来对这个函数作一个总结。
115 0
|
存储 编译器 C++
C++ sizeof 的介绍
C++ sizeof 的介绍
112 0
sizeof与strlen练习
sizeof与strlen练习
51 0
|
C++
关于sizeof相关注意点
strlen是专门用来求字符串长度的,统计的是’\0’之前出现的字符个数,一定要找到’\0’才能结束,所以如果没有\0可能会存在越界访问问题
98 0