是的,因为在链表中,一般结点末端都会赋值为NULL,而正常结点都会有一个地址址,所以不可能为0
不一样 p != NULL指的是指针存在,只要指针有指向的值就为True 而 *p是指指针指向的值为True,当*p指向0时,p!=NULL为True;而*p为False
NULL在C语言里只是一个宏定义而已,它的值就是0,所以p=NULL表达式的值也是0因此while循环结束。
链表的节点结构为数据域和指针域。数据域用于存储数据,指针域用于寻找下一个节点。 while(p)可以等效于while(p!=NULL),因为这个小程序是计算链表长度的,而链表的最后一个节点的指针域指向空,所以循环条件为p!=NULL。而p=p->next;这个的意思为: 首先p=l->next,因为l为这个链表的头节点,头...
p明显是个指针,while(p)就是说指针如果有指向,就执行while下的语句,如果是0,也就是NULL,指针没有指向任何地址,也就是空指针.*p=head->next 这个可能是是树之类的数据结构,你没描述清楚,我也猜不出是什么.追问:ListNode *LocateNode(LinkList head,char *key)...
null表示所查询的数据在数据库没有数据 p!=null是指P有数据时 while(p!=null)指循环条件满足p有数据就执行
while(p) 和if(p)在这里的意思差不多。都是当p不为空的是指执行后续语句。等价于 while(p != NULL ) if (p != NULL)。在代码中你还可以看到类似这样的写法。while(!p) if(!p)。这个就是当p为空的时候才执行后续的语句 。等价于while(p == NULL ) if (p == NULL )。
while(p) 等价于while(p !=0) 检查的是p值是不是0,或者是不是空指针,如果是,则跳出循环,不再继续循环体 而while(*p) 相当于while( *p != 0) 检查的是p所指向的地址中的数据是否为0,但前提是p不能为NULL
您好,您给出的两个while循环中,变量p是一个指针。如果用while(p!=NULL&&p->data!=x)这个写法的时候,先判断的是p!=NULL这个条件成立,才会去判断后面的p->data!=x这个条件。如果游标p已经移到这个链表最后了,判断发现赋值给p的p->next是空指针就会停下循环。而你提供的第二个写法while(p->...
while(p)的作用 while(p)等于while(p!=NULL)//检查p值是否为0 而while(*p)则是检查p指向的地址数据是否为0。