您需要仔细阅读标准:空指针与任何指向对象或函数的指针比较不相等。不能通过在对象上使用地址运算符(例如&foo
)来生成空指针。任何函数指针都保证为非 NULL。将这两者放在一起意味着空指针永远不会与 ptr-to-object 或 ptr-to-function 进行比较。
澄清一下,比较不相等意味着这a == b
是错误的(与相同的a != b
是正确的)。
您引用的段落没有提及任何有关比较两个空指针的内容,但下一段却是:
将空指针转换为另一种指针类型会生成该类型的空指针。任意两个空指针比较相等。
比较相等则表示为a == b
真(相同则为a != b
假)。