strlen和sizeof的区别

简介: strlen和sizeof的区别

1. strlen:

- strlen 是一个函数,用于计算以 null 终止的字符串的实际长度,即字符数(不包括 null 终止符)。

  - 它的原型是 size_t strlen(const char *str);。

  - strlen 函数遍历字符串直到遇到 null 终止符 `\0`,然后返回在此之前遍历的字符数。

  - 例如,对于字符串 "hello",strlen 返回 5,因为有 5 个字符,但不包括 null 终止符。

2. sizeof:

  - sizeof 是一个操作符,用于获取数据类型或变量的字节大小。

  - 它的形式是 sizeof(type_or_variable),其中 type_or_variable 是数据类型或变量的名称。

  - sizeof 在编译时计算,返回数据类型或变量占用的字节数。

  - 例如,sizeof(int) 返回整数类型的字节大小,通常是 4 字节,而 sizeof(char) 返回字符类型的字节大小,通常是 1 字节。

sizeof

注意:

在C语言中,sizeof("abc")sizeof("abc\0") 的值通常是不同的。

这是因为字符串字面值 "abc" 包含了字符 'a'、'b' 和 'c',但不包含空字符('\0')。

因此,sizeof("abc") 通常等于 4(3个字符加上一个空字符)

sizeof("abc\0") 通常等于 5(3个字符加上两个空字符,一个显式的 '\0' 和一个隐式的字符串结尾空字符)。

在处理字符串时,通常使用 strlen 来获取字符串的长度,因为它可以精确地计算字符串中的字符数。而在需要获取数据类型或变量的大小时,可以使用 sizeof。

需要注意的是,当处理字符串时,特别是在处理指针和动态分配的内存时,要小心使用 strlen,以确保不会访问到超出字符串边界的内存。

目录
相关文章
|
6月前
|
编译器 C语言
sizeof,sizeof与strlen的区别
sizeof,sizeof与strlen的区别
56 0
sizeof,sizeof与strlen的区别
|
5月前
|
C语言
sizeof与strlen的使用及其区别
sizeof与strlen的使用及其区别
sizeof与strlen的使用及其区别
|
1月前
|
编译器 C++
sizeof 和 strlen 的区别
`sizeof` 和 `strlen` 是 C 和 C++ 中常用的运算符/函数,功能和用途不同
63 11
|
1月前
|
C语言
深入解析sizeof和strlen的区别与联系
深入解析sizeof和strlen的区别与联系
|
6月前
|
存储 编译器
strlen()和sizeof()的区别
strlen()和sizeof()的区别
49 0
strlen和sizeof详解
strlen和sizeof详解
84 0
|
6月前
strlen与sizeof 的基本用法
strlen与sizeof 的基本用法
42 0
|
6月前
|
Serverless
sizeof和strlen的区别【详解】
sizeof和strlen的区别【详解】
56 0
|
11月前
strlen与sizeof的区别
strlen与sizeof的区别
73 0
sizeof与strlen区别
sizeof是关键字,参数可以是各种数据(包括函数,类型,对象,数组,指针……)用于计算数据所占字节大小 strlen是函数,参数类型必须是字符型指针(char *),用于计算字符串,从字符串的第一个地址开始遍历,直到遇到‘\0’停止
80 0