这个条件是什么意思?

时间:2016-03-05 07:54:01

标签: c++ pointers

我查看了这样的代码。这个条件意味着什么?

Node *root;

while(root){

}

4 个答案:

答案 0 :(得分:1)

此条件表示以下内容 在C和C ++中

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

或在C ++中

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

假设变量root在循环中被更改。

否则你需要在循环中有更多的条件来打破它。

答案 1 :(得分:1)

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

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

其中也是一个节点指针,它会转发到存储在不同地方的数据

答案 2 :(得分:0)

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

当我们在链表上检查或迭代时,我们直接使用while循环执行直到条件不变为假

While(true)

While(root)

While(root !=null)

答案 3 :(得分:0)

Node *root;

while(root){

}

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

如果root已初始化(或之后设置为有效值),则while将显示为:“只要root不是,就执行以下操作nullptr。“ [*]

出于可读性的原因,最好明确指出这个意图:

while (root != nullptr) {

}
自C ++ 11以来,

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