我查看了这样的代码。这个条件意味着什么?
Node *root;
while(root){
}
答案 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 ++版本中,您可以使用0
或NULL
。