Можно ли в условии с указателями опустить nullptr
Есть условие:
if ((p != nullptr) && (p->left == nullptr) && (p->right == nullptr)){....
Можно ли его записать как:
if ((p) && (!p->left) && (!p->right){....
Или смысл условия все же поменяется?
P.S. p - это указатель на класс (Node*)
Ответы (1 шт):
Автор решения: Джонни Кэтсвилл
→ Ссылка
Оператор if требует, выражение типа bool. Если выражение имеет другой тип, то он будет преобразовано в bool.
Алгоритм преобразования указателя в bool прост. Нулевой указатель преобразуется в false, любой ненулевой указатель в true.