2016-03-05 63 views
-5

我看着这样的代码。条件是什么意思?条件是什么意思?

Node *root; 

while(root){ 

} 
+0

一个while循环应该在任何教程中解释。请在提问无用之前做一些调查。 –

回答

1

此条件意味着在C以下 和C++

while(root != NULL){ 
//... 
} 

或C++

while(root != nullptr){ 
//... 
} 

据推测,可变根在循环改变。

否则,你需要更多的条件在循环内打破它。

1

它使用的数据结构LINKLIST你想要去最后一个点或数据的节点这样

while(root != NULL){ 
ptr=ptr.next; 
} 

这里也是一个节点指针和它去转发到存储在不同的地方你的数据

0

这意味着root是指针,指向null或不指向任何节点。

当我们检查或重复它在链表然后我们直接使用,而直到条件地执行的环路不会成为虚假

While(true) 

While(root) 

While(root !=null) 
0
Node *root; 

while(root){ 

} 

首先,这个代码确切片是未定义的行为,因为root未初始化,并且在循环开始之前也没有设置值。但是当指针在循环条件下使用时,指针需要有一个有效的值。请注意,nullptr是一个有效值。

如果root被初始化(或设置为有效的值之后),那么while会为已读:“做以下的东西,只要root不是nullptr”。[*]

可读性原因,倒不如明确命名这一意图:

while (root != nullptr) { 

} 

[*]nullptr因为C++ 11的存在。在以前的C++版本中,您会使用0NULL