What does the NULL macro represent?

Why is NULL defined as NULL (void *) 0?

Since 0 is equivalent to NULL, does that mean a Null Pointer is just an address with all 0000 bits?

Can we use NULL as /0?

Is there any advantage to casting the Referenced Type to a malloc function call?

Does calloc set all values to 0 and all addresses of pointers to NULL?

How do we allow a structure to point to another & vice-versa?

What’s the Idiom for malloc to guarantee the proper amount of memory is allocated?