strlen与sizeof有什么区别?

时间:2022-03-17 13:51:02

其实二者的区别还是很大的,首先strlen计算的长度不包括字符串最后的终止null字节,

而sizeof则计算包括终止null的缓冲区长度。还有一点很容易被忽略,strlen需要一次函数调用,

即它是个函数,而sizeof是个运算符,缓冲区已用已知字符进行了初始化,其长度是固定的,所以,

sizeof在在编译时计算时缓冲区的长度。因而,大神总是忠告我们,不要将strlen写入循环体内,

可sizeof没有这方面的考虑。