根本就没有可比性:
char * p = NULL;
if (p == NULL) // true
if (!*p) // crash
char a = '\0';
char * p = &a;
if (p == NULL) // false
if (!*p) // true
char a = 'A';
char * p = &a;
if (p == NULL) // false
if (!*p) // false
当然,如果LZ问的是
if (p == NULL)
和
if (!p)
的话,两个条件是等价的,简单的判断方法就是使用真值表。