#define NULL (void *)0
printf("NULL %d\n", NULL); results == 0
#define NULL (void *)1
printf("NULL %d\n", NULL); results == 1
From the above, when we say NULL. We are telling the compiler that memory of NULL is to be treated as null pointer meaning, which is nothing. Value of zero for NULL has its own perks in terms of conditions in if else or while loops or any other condition.
Otherwise we can assign our own NULL pointers in our programs.