首先它们都可以计算字符数组的长度
区别1:是sizeof计算了 \0 的长度,strlen只计算 \0 之前的长度
区别2:sizeof可以计算整形数组的长度,而strlen只能计算字符数组的长度
注意:sizeof(数组名)计算出的结果是 字节大小*元素个数
如上图sizeof输出结果是12=3(个数)*4(大小)
区别3:sizeof是一个运算符,而strlen是一个库函数,strlen只认\0,没有\0就不会停止。如图:
strlen输出的是随机值,因为没有找到\0。
值得注意的是: char arr2[] = { 'a','b','c','d','e' } char arr1[] = "abcde";两种不同的定义数组的方式,前者没有\0,而后者有