'\0' is a number: 0, so it is evaluated as false (0 = false, !0 = true).
But "\0" is a pointer to a read-only section where the actual string is stored, the pointer is not NULL ergo it's true.
'\0' is a number: 0, so it is evaluated as false (0 = false, !0 = true).
But "\0" is a pointer to a read-only section where the actual string is stored, the pointer is not NULL ergo it's true.