in Qt docs we read:
bool QSharedPointer::operator! () const
Returns true if this object is null. 
This function is suitable for use in if-constructs, like:
 if (!sharedptr) { ... }
and
bool QSharedPointer::isNull () const
Returns true if this object is holding a reference to a null pointer.
What is the difference between these two functions? This is clear what is reference to a null pointer, but what means here
"if the object is null" ?
What determines if QSharedPointer is null? How do these functions correspond to QSharedPointer::data() != null ?
 
                        
From Qt sources of the
QSharedPointerclass:This confirms what @JoachimPileborg said in his comment -
isNull()function andoperator!()are equivalent.