首页 > 解决方案 > 为什么不能在 C 中比较结构的 NULL 性?

问题描述

我有以下结构:

typedef struct School
{
    int numOfStudents;
} School;

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

School s;

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

if(s) {
    printf("null");
}

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

error: used struct type value where scalar is required

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

标签: cstructnull

解决方案


如果是:

School s;

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


推荐阅读