Null Pointer in C!

Here it is..
#include <stdio.h>
 
void isMyPointerNull(int *pointer){
    if (pointer == NULL) {
        printf("%s\n", "This pointer is a NULL pointer.");
    } else {
        printf("%s\n", "This pointer is NOT a NULL pointer.");
    }
}
 
int main() {
    int someNumber; // Allocate space in the memory.
 
    int *pointer;
    isMyPointerNull(pointer); // Not NULL yet.. It probably contains garbage.
    printf("%p\n", pointer);  // Prints garbage such as: 0x7fff585cbad0
 
    pointer = 0;
    isMyPointerNull(pointer); // We made it NULL..
    printf("%p\n", pointer);  // Prints 0x0
 
    pointer = &someNumber,
    isMyPointerNull(pointer); // Not null anymore..
    printf("%p\n", pointer);  // Prints 0x7fff56590abc
 
    pointer = NULL;
    isMyPointerNull(pointer); // Back to being NULL..
    printf("%p\n", pointer);  // Prints 0x0
}

And in action:
Korays-MacBook-Pro:~ koraytugay$ gcc hello.c
Korays-MacBook-Pro:~ koraytugay$ ./a.out 
This pointer is NOT a NULL pointer.
0x7fff54b0bad0
This pointer is a NULL pointer.
0x0
This pointer is NOT a NULL pointer.
0x7fff54b0babc
This pointer is a NULL pointer.
0x0

My Notes

NULL should not be used in contexts other than pointers. It might work some of the time, but it is not intended to be used this way. It can definitely be a problem when used in place of the ASCII NULL character. This character is not defined in any standard C header file. It is equivalent to the character literal, '\0', which evaluates to the decimal value zero.