想知道sizeof和strlen到底有啥不同?简单说,一个算字节一个算字符,差别可大了!
`sizeof`和`strlen`是两个经常被混淆的函数,但它们的作用和返回类型有本质区别。简单来说,`sizeof`计算的是数据类型或变量所占用的内存空间大小,单位是字节(byte)。无论数据中包含多少个字符,`sizeof`只关心其类型本身的大小。例如,`sizeof(char)`通常是1字节,`sizeof(int)`通常是4字节。
而`strlen`函数则用于计算以空字符('\0')结尾的字符串中的字符数量,不包括空字符本身,单位是字符数。`strlen`计算的是字符串的长度,而不是字节数。例如,对于字符串`"hello"`,`strlen("hello")`返回5,因为它包含5个可见字符,后面跟着一个空字符。
因此,`sizeof`关注的是内存占用,而`strlen`关注的是字符串的字符长度。在使用时,要明确你的需求是计算字节大小还是字符数量,从而选择合适的函数。