目录
sizeof的参数可以是数据的类型,也可以是变量,而strlen只能以结尾为"/0"的字符串作为参数
数组做sizeof的参数时不退化,传递给strlen就退化为指向数组首元素指针了。
类型和用途不同:
sizeof是一个操作符,strlen是库函数
sizeof是C/C++中的一个运算符,用于计算变量或类型所占用的内存大小(以字节为单位)
strlen是一个C语言库函数,用于计算字符串的长度(不包括字符串结尾的'\0'字符)。其函数原型为:
size_t strlen(const char *s)
该函数接收一个字符串的指针作为参数,并返回该字符串的长度(以字节为单位)
参数和返回值不同
sizeof的参数可以是数据的类型,也可以是变量,而strlen只能以结尾为"/0"的字符串作为参数
数组做sizeof的参数时不退化,传递给strlen就退化为指向数组首元素指针了。
//sizeof不退化为指针
#include <stdio.h>
int main() {
char str[10] = "Hello";
// sizeof 返回整个数组的大小,即使数组名被用作参数
printf("Size of the array str: %zu bytes\n", sizeof(str));
return 0;
}
sizeof(str) 返回的是 str 数组的总大小,即10个字节(尽管 "Hello" 只占用了其