这是对函数
中传递的DOUBLE指针参数的有效空检查if (!pdblValue) return E_POINTER;
答案 0 :(得分:6)
是的,这是正常检查指针是非空的。
答案 1 :(得分:3)
在C ++中,“if”语句使用布尔表达式。如果它是 true ,它将执行条件块内的部分。如果 false ,则不会。
pdblValue是类型指针。否定它(!pdblValue)将给出一个长整数表达式,如果指针的值为NULL,则该值不同于零,否则为零。
这将被转换为布尔值,因为这是条件所需要的。不同于零的值将转换为true,将零值转换为false。
因此,它将具有与更自然形式相同的语义:
if (pdblValue == NULL) ...
您实际上在其中提供了一个布尔表达式 - 您实际意义上的那个。
答案 2 :(得分:1)
是。如果指针非零,则指针评估为“是”,就像C ++中的每个其他基本类型一样。
答案 3 :(得分:0)
假设pdblValue是一个指针,它在初始化时设置为NULL并且无效,那么是。