我知道字符串的结尾由空字符表示,但我无法理解以下代码的输出.
#include <stdio.h>
#include <string.h>
int
main(void)
{
char s[] = "Hello\0Hi";
printf("%d %d", strlen(s), sizeof(s));
}
Run Code Online (Sandbox Code Playgroud)
输出:5 9
如果strlen()在o的末尾检测到字符串的结尾,那为什么sizeof()不做同样的事情呢?即使它没有做同样的事情,也不是'\ 0' 一个空字符(即只有一个字符),所以答案不应该是8吗?