2016-03-05 62 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