В C ++ оператор if использует логическое выражение.Если это true , он выполняет часть внутри условного блока.Если это false , это не так.
pdblValue имеет указатель типа.Отрицание этого (! PdblValue) даст длинное целочисленное выражение, которое отличается от нуля, если значение указателя было NULL, и ноль в противном случае.
Это будет преобразовано в логическое значение, потому что это то, что нужно всостояние.Отличное от нуля значение будет преобразовано в истинное значение, а нулевое значение - в ложное.
Следовательно, это будет иметь ту же семантику, что и более естественная форма:
if (pdblValue == NULL) ...
В которойвы на самом деле предоставляете логическое выражение - то, которое вы на самом деле имели в виду.