这是对在函数中传递的DOUBLE指针参数的有效空值检查吗

if (!pdblValue) return E_POINTER;

最佳答案

在C++中,“if”语句使用 bool(boolean) 表达式。如果是,则为true ,它将在条件块内执行该部分。如果它是,但不是,则不是。

pdblValue是指针类型。取反(!pdblValue)将给出一个长整数表达式,如果指针的值为NULL,则该整数表达式将不同于零,否则为零。

这将被转换为 bool(boolean) 值,因为这是条件中所需要的。与零值不同的值将转换为true,将零值转换为false。

因此,它与更自然的形式具有相同的语义:

if (pdblValue == NULL) ...

您实际上在其中提供一个 bool(boolean) 表达式-您实际上是在说一个 bool(boolean) 表达式。

10-07 23:40