奇怪的双指针空检查
答
在C++中,“if”语句使用布尔表达式。如果它是true,它将执行条件块内的部分。如果它是虚假,它不。
pdblValue是类型指针。否定它(!pdblValue)会给出一个长整型表达式,如果指针的值为NULL,则该表达式不为零,否则为零。
这将被转换为布尔值,因为这是条件中需要的。与零值不同的值将被转换为true,并且零值被转换为false。
因此,这将具有比更自然的形式相同的语义:
if (pdblValue == NULL) ...
中,你实际上是提供了一个布尔表达式 - 一个你实际上的意思。
答
是过去了。如果指针非零,则指针评估为“是”,就像C++中的每个其他基元类型一样。
答
是的,这是正常检查指针是非空的。
答
假设pdblValue是一个指针,并且在初始化时设置为NULL,并且无效,那么是的。
什么类型是DOUBLE? – sbi 2010-06-25 11:09:31
如果其指针指向双精度型,则为yes;如果要比较由于舍入误差指针指向的内容,则为yes。 – 2010-06-25 11:26:52