首先需要说明的是sizeof和strlen都可以求长度,但是却有很大的区别,简单来说可以概括为以下几点:
1、sizeof是一个关键字,而strlen确实一个函数。
2、sizeof求的是字节长度,而strlen求的却是实际长度。
比如int a=1;sizeof(a)==4而strlen(a)=1
3、sizeof求的是分配过来的长度,而strlen求的却是实际使用的长度。
比如:char a[30]="abcd";
sizeof(a)=30;而strlen(a)=4;
4、strlen求的长度是以‘\0‘结束的。
比如char a[30];strlen(a)的结果是不定的,而sizeof(a)=30;
同理:char a[30]={‘a‘,‘b‘,‘c‘};对于strlen来说也是不定的,而sizeof却是30.
以上四点便是sizeof和strlen的简要区别,给自己提个醒,也给别人提个醒。
sizeof()与strlen()的区别,布布扣,bubuko.com
原文:http://www.cnblogs.com/xiaoyi115/p/3619440.html