不理解:while ((q = *pp) != NULL),快来解答呀!!!!!

dingd 2003-04-27 09:07:44
读程序的时候看到的;
while ((q = *pp) != NULL)
{
...........
}

有些不大理解里面的!=

前一个(q = *pp) 还可以理解,就是在进行While循环的同时将
*pp赋给q,可是这个赋值完成后是判断什么!=NULL呢?

是判断q != NULL
还是判断 *pp != NULL

总不是判断(q = *pp) 它 != NULL吧???

类似的还有if ((*pp = q->next) == NULL)

轻快点给出准确的回答,谢谢了。
...全文
99 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
bahanzo1 2003-04-28
  • 打赏
  • 举报
回复
应该是先赋值再判断的
cxjddd 2003-04-28
  • 打赏
  • 举报
回复
在这里等价于*pp==NULL。实际上是q==NULL。
LoveCreatesBeauty 2003-04-28
  • 打赏
  • 举报
回复
while ((q = *pp) != NULL)
先*pp赋值给q。
再判断表达式(q = *pp)的值是否为NULL。
benbenhuhu 2003-04-28
  • 打赏
  • 举报
回复
up
keenleung 2003-04-28
  • 打赏
  • 举报
回复
先赋值,再比较,比较的是p
Ruan76 2003-04-28
  • 打赏
  • 举报
回复
是判断*pp!=NULL吧,应该是判断它的内容不为空吧
firela 2003-04-28
  • 打赏
  • 举报
回复
象这样
for(q = *pp ; q != NULL; q = *pp)
{
...
当然这里要对pp做改变,或者跳出循环
}
hitbabiq 2003-04-28
  • 打赏
  • 举报
回复
应该是判断 q != NULL
wshcdr 2003-04-28
  • 打赏
  • 举报
回复
GZ
dingd 2003-04-27
  • 打赏
  • 举报
回复
到底是不是最后判断q != NULL 呀???

类似的:(pp == NULL).

wpg 2003-04-27
  • 打赏
  • 举报
回复
q = *pp;
while (q != NULL)
{
...........
}
wwww2 2003-04-27
  • 打赏
  • 举报
回复
既然q = *pp,那么判断q != NULL,还是判断 *pp != NULL还有什么区别吗?
mickwang 2003-04-27
  • 打赏
  • 举报
回复
是不是搞错了呀
如果*pp!=NULL,就是无限循环了
一般是while((q=*pp++)!=NULL)来进行字符串拷贝的

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧