while(*p)这个词语其实是不容易理解的,它不仅仅是一个英文单词,其实它是一个执行语句,相信很多人都不太明白它的意思,下面就来具体地介绍一下。


p明显是个指针,*p=head->next 这个可能是树之类的数据结构,while(*p)就是当指针p有指向时,执行循环体的内容,while后面括号里内容指的是循环执行的条件,当条件为真时执行*p=head->next 循环,为假时则不执行。p明显是个指针,while(p)就是说指针执行while下的语句,如果是0,也就是NULL,指针没有指向任何地址,也就是执行空指针,也就是说*p为条件,当然就是说当*p为真时执行循环,这里的真便是指非0或是非空,也就相当于while(*p!=0)循环条件是:指针p所指节点中的成员next的是值。



若该值为下一个节点的地址即循环条件为真,若是0或NULL 则循环条件为假,但是除了while(*p)以外,其实还有一个while(p) ,while(p)等价于while(p !=0) 检查的是p值是不是0,或者检查是不是空指针,如果是的话,则能够立刻跳出循环,以上就是对于while(*p)的介绍,希望可以帮助到你们。