char buf[] = "Hello world"
sizeof(buf) - 1 = strlen(buf)
1.sizeof 是个宏,故而sizeof(buf)在编译时即以知道。另外,它计算的是整个缓冲区的长度,包括字符串末尾的'\0'。
2.strlen是个函数,只有运行时才知道结果。它计算的字符串长度不包括末尾的\0
char buf[] = "Hello world"
sizeof(buf) - 1 = strlen(buf)
1.sizeof 是个宏,故而sizeof(buf)在编译时即以知道。另外,它计算的是整个缓冲区的长度,包括字符串末尾的'\0'。
2.strlen是个函数,只有运行时才知道结果。它计算的字符串长度不包括末尾的\0