在c ++中的对象前面使用否定运算符有什么作用?

时间:2018-08-27 21:29:07

标签: c++

在C ++中,我经常看到看起来像这样的代码:

Object * p = init();
if (!p) {
    printf("Fail");
}
else {
    printf("Success");
}

据我所知,它正在检查'p'是否已正确初始化。 如果没有!,我们可以达到类似的结果。带有以下if语句的运算符:

Object * p = init();
if (p) {
    printf("Success");
}
else {
    printf("Fail");
}

我从来没有真正阅读过为什么这么做的地方。我只知道它有效。我知道C ++中的条件可以包含布尔值或整数,其中0为false,其他均为true,但是它如何与对象一起使用?我猜想它可能与空指针有关,但我从未见过在任何地方明确提到它。

0 个答案:

没有答案