while语句括表达式号中的语句形式。

八戒爱飘柔 2010-04-06 12:41:14
书本中的while()语句括号中都是些能判断真假的布尔表达式。eg:while(a>b),但有时括号中的语句不能判断真假,这是怎么回事?eg:
void compress(node *head)
{
node *ptr,*q;
ptr=head->next;
while(ptr&&ptr->next) {
q=ptr->next;
.....

}
}
...全文
192 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
starcat 2010-04-06
  • 打赏
  • 举报
回复
纯C中有内建的bool数据类型么?
lbjfeng 2010-04-06
  • 打赏
  • 举报
回复
什么叫做不能判断真假??

或者为真,或者为假……如何教不能判断真假
FingerStyle 2010-04-06
  • 打赏
  • 举报
回复
定义指针的时候 开始最后给它个null
冻结 2010-04-06
  • 打赏
  • 举报
回复
while(ptr&&ptr->next)
所有有整形性质的类型,0为假,非0为真。
这里ptr和ptr->next都是指针。其实就是一个整形,表示地址。也是0为假,非0为真。
FingerStyle 2010-04-06
  • 打赏
  • 举报
回复
while(ptr&&ptr->next) 和 while (ptr != null && ptr->net != null) 一个意思
a_rockboy 2010-04-06
  • 打赏
  • 举报
回复
C/C++中0为假,非0为真
八戒爱飘柔 2010-04-06
  • 打赏
  • 举报
回复
我明白了,谢谢大家的热心回答!
东大坡居士 2010-04-06
  • 打赏
  • 举报
回复
如:

if(9){}//这个就会执行if包含的内容.
if(0){}//这个就不会执行
zhangwenhai 2010-04-06
  • 打赏
  • 举报
回复
0是假,非0是真,(你是没搞明白非0吧), 浮点数除外
GKatHere 2010-04-06
  • 打赏
  • 举报
回复
lZ's Eg不就是一个单向链表求值嘛
kevinyujm 2010-04-06
  • 打赏
  • 举报
回复
真假,非零和零的区别。
sbdt123 2010-04-06
  • 打赏
  • 举报
回复
我也不明白,请大家给个明确的解释。
赵4老师 2010-04-06
  • 打赏
  • 举报
回复
非0即假,0即真。浮点数不行。
huanmie_09 2010-04-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 classpatterns 的回复:]
while(ptr&&ptr->next) 和 while (ptr != null && ptr->net != null) 一个意思
[/Quote]
正解!
你这个如果不能判断的话,应该是你创建链表的时候没有把最后一个节点的next域指空.即tail->next=NULL;建议创建一个新节点的时候,给节点数据域指定值后,将该节点的next域也指空.

70,005

社区成员

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

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