sizeof("")等于1是因为C语言中的字符串常量是以空字符'\0'结尾的字符数组,而""表示一个空字符串,即只有一个空字符'\0'。因此,sizeof("")返回的是字符串常量的长度,即1。
而sizeof(NULL)相当于C语言中的4是因为NULL在C语言中被定义为一个空指针常量,通常被表示为0。在32位系统中,指针的大小为4个字节,因此sizeof(NULL)返回的是指针的大小,即4。
需要注意的是,sizeof("")和sizeof(NULL)返回的结果并不是字符串或指针本身的长度,而是它们所占用的内存空间的大小。