这是对在函数中传递的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) 表达式。