sizeof
和strlen
是C语言中两个不同的操作符,它们的主要区别在于用途和功能:
sizeof
是一个运算符,用于计算数据类型或对象所占用的内存大小(以字节为单位)。sizeof
的结果是一个无符号整数。例如,sizeof(int)
将返回int
类型在当前系统和编译器下所占的字节数。#include <stdio.h>
int main() {
printf("Size of int: %zu bytes\n", sizeof(int));
return 0;
}
strlen
是一个函数,用于计算字符串的长度(不包括空字符\0
)。strlen
的返回值是一个无符号整数,表示字符串中字符的数量。例如,strlen("hello")
将返回5,因为字符串"hello"包含5个字符。#include <stdio.h>
#include <string.h>
int main() {
char str[] = "hello";
printf("Length of string: %zu\n", strlen(str));
return 0;
}
总结一下,sizeof
用于计算数据类型或对象的大小,而strlen
用于计算字符串的长度。需要注意的是,sizeof
是针对变量或数据类型的,而strlen
是针对字符串的。