if(p&&*p) {……}这里if条件的意思if(p&&*p) {……}这里if条件的意思
相当于
if (p != NULL && (*p) != 0)
并且,这个表达式存在短路,如果 p == NULL,将不会对 *p 求值。所以实际上相当于
if (p != NULL) { if (*p != 0) { ... } }