任何类型的空指针的值均为0,(char*)0表示一个指向char型对象的空指针。 if(p == (char *) 0 )表示: p是一个char型的指针。 p的值如果为0的话,表示无任何指向。 NULL是一个宏,是(void*)0 整个语句的意思是: 判断p的值是否是0,也就是判断p有没有指向哪个区域,如果有,if语句不成立。 (char*)0:强制转换,只是为了保证与p的类型保持一致。