1.含义不同
sizeof()是一个单目运算符,也是关键词之一,使用的话,不需要引用头文件
strlen()是一个函数,使用的话需要引用头文件-#include "string.h"
2.sizeof可以用于做参数,它的参数可以是数组、指针、类型、对象、函数等,与初始化有一定的关系,而strlen则只能用char做参数,而且有限制,与初始化无关,这也是两者的区别所在。
3.计算时间不同
sizeof在编译时就能计算,而strlen只能在运算时才能计算.
4.
strlen()函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0'停止。
如char a[5]时,结果为5
char a[5]={'\0'}时,结果为0
char a[5]={'abcd'}时,结果为4
而sizeof()返回的是变量声明后所占的内存数,而且不是实际长度
如char a[10] sizeof(a)=10;
int a[10] sizeof(a)=40;
int a[10]={'abcde'} sizeof(a)=40;