NULL is a macro, defined in as a null pointer constant. \0 is a construction used to represent the null character, used to terminate a string. A null character is a byte which has all its bits set to 0. All three define the meaning of zero in different context.