sizeof
和 strlen
都是用来获取数据的大小或长度的工具,但它们有不同的用途和行为。
sizeof:
- 功能: 计算一个变量或数据类型的总大小(以字节为单位)。
- 适用对象: 数据类型、变量、数组、结构体等。
- 编译时计算:
sizeof
是在编译时计算的,不需要运行时信息。- 包含空字符: 对于字符数组,
sizeof
会包括字符串末尾的空字符\0
(如果它存在)。- 语法:
sizeof(expression)
或sizeof type
- 返回值类型:
size_t
strlen
- 功能: 计算一个以空字符
\0
结尾的字符串的长度(不包括末尾的空字符)。- 适用对象: 以空字符
\0
结尾的字符串。- 运行时计算:
strlen
在运行时计算字符串的长度。- 不包含空字符:
strlen
返回的长度不包括字符串末尾的空字符\0
。- 语法:
strlen(const char *str)
- 返回值类型:
size_t
下面举一些例子帮助大家理解: