遇到一个奇怪的问题,写了一个判断
if (head->previous)
{
head->previous->next = tail;
tail->previous = head->previous;
}
else
{
tail->previous = NULL;
school->student_head = tail;
}
调试的时候发现这两个分支都不执行,网上搜了一下发现还有一种 无法判断的情况
编译器觉得你既不是满足条件,也不是对立条件。
if (head->previous != NULL)
{
head->previous->next = tail;
tail->previous = head->previous;
}
else
{
tail->previous = NULL;
school->student_head = tail;
}
改了一下就好了. C 语言不是以 !0 为真吗?