"Pointers are declared using * operator and can only be assigned with an address of another variable or NULL (called Null Pointer)."
This is not quite true.
The * in a declaration in C or C++ is not an operator.
A pointer need not be assigned the address of a variable. Consider p = p + 1;
NULL is not a pointer -- it is the null pointer constant -- an expression evaluating to something equivalent to 0 or (void *)0 -- which means that in some contexts it doesn't produce a pointer value at all.
This is not quite true.
Thank you for the correction. I'll verify and update the post.
You're welcome. :)