1. sizeof是操作符,strlen是库函数。
2. sizeof的参数可以使数据类型,变量,对象,结构体,数组等,返回其所占内存字节数。
3. strlen的参数只能是字符串,返回字符串的长度。
4. sizeof在编译时就运算出结果,strlen在运行时计算结果。
小结:sizeof计算的是分配内存的大小,计算的对象很广泛,包括数据类型,变量等等。strlen 则局限于字符串,并返回字符串的长度。需要特别注意的是,禁止空指针引用strlen ,结果不确定。另外,strlen参数为字符串数组情况下,如果数组长度不大于字符个数,则无法再为字符串末尾添加"\0" (所有字符串末尾都有一个隐藏的"\0"标记字符串结尾),同样结果不确定。 |
|