为什么C中的NULL不能比较结构?

hit*_*ker 5 c null struct

我有以下结构:

typedef struct School
{
    int numOfStudents;
} School;
Run Code Online (Sandbox Code Playgroud)

例如,如果我有一个结构:

School s;
Run Code Online (Sandbox Code Playgroud)

我想检查结构是否为null,如下所示:

if(s) {
    printf("null");
}
Run Code Online (Sandbox Code Playgroud)

这将无法编译,错误消息如下:

error: used struct type value where scalar is required

为什么我不能在C中的if语句中检查结构为NULL?

sel*_*bie 7

如果是:

School s;

s绝对不是NULL,因为它不是指针.但是,它是一个未初始化的结构实例,其值s.numOfStudents是未定义的.