在学习C语言中发现strlen和sizeof的关系不是很明确,今天来总结一下这两个的区别:
sizeof
- 是运算符,用来计算字节数,在计算字符串数组大小时包含(\0)
- 在编译时计算大小,参数可以是数组、指针、类型、对象、函数等。
strlen - 是函数,用来测试字符串长度,不包含(\0)
- 在运行时计算大小,参数是字符型指针。
#include <stdio.h>
int main(void)
{
int size1, size2;
char a[] = "hello";
size1 = sizeof(a);
size2 = strlen(a);
printf("%d %d", size1, size2);
return 0;
}
结果: