Can a pointer be null and if so can it be tested for?

Yes.

if ( MyPtr == NULL )
{
// Do your thing.
}

Or, more usually,

if(MyPtr) // NOT equal NULL
{
   // dereference the pointer safely
}