1、strlen是函数,sizeof是运算符
2、strlen只能计算字符串的长度,而且要想得到正确的长度,字符串后面必须包含’\0’,sizeof的参数可以是数组、指针、类型、对象、函数等
3、在计算字符数组的时候strlen算的是实际有的字符数,而sizeof计算的是数组的大小
举个例子:
#include <stdio.h>
#include <string.h>
int main()
{
char str[20] = "123456789";
printf("strlen:%d\n",strlen(str));
printf("sizeof:%d\n",sizeof(str));
}
结果:
strlen: 9
sizeof: 20
一个遇到\0 停止 一个则是计算数组大小
#include <stdio.h>
#include <string.h>
int main()
{
char str[20] = "12345 \0 6789"; 这里\0左右存在空格 也算字符
printf("strlen:%d\n",strlen(str));
printf("sizeof:%d\n",sizeof(str));
}
结果:
strlen: 6
sizeof: 20