区别1:sizeof是关键字,其后可跟变量,跟类型时一定要加括号,而且返回的是一个无符号的整形,strlen()相当于
一个计数器,它的参数是char *,而且必须以'\0'结束.
区别2:char a[]={shuipingzuo}
sizeof(a) // a代表的是整个数组的长度固值应该为12(后面有一个/0的结束符)
strlen(a)//其值为有效长度为11.
char a[11]={"shuipingzuo"}与char a[11]={'s','h',.......}(单个复制相同)
sizeof(a)=11,strlen(a)=一个未知数。
区别3:sizeof()括号里面加数组名是计算的整个数组的长度,而strlen()里面加数组名时数组名退化成了指针。
区别4:计算的时间不一样。sizeof()在编译的时候将计算类型和变量,而strlen()是在运行的时候才计算的。
区别5:sizeof不仅可以做使变量做参数,而且可以使函数,类型等做参数,当是类型时,必须加括号。