2016-03-05 4 views
-5

Я просмотрел такой код. Что означает это условие?Что означает это условие?

Node *root; 

while(root){ 

} 
+0

Цикл while должен быть объяснен в любом уроке. Пожалуйста, сделайте некоторое исследование, прежде чем задавать бесполезные вопросы. –

ответ

1

Это условие означает, что в С следующий и

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

или в C++

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

Предполагается, что переменная корень изменяется в цикле C++.

В противном случае вам понадобится еще какое-то условие внутри цикла, чтобы разбить его.

1

Он используется структура данных LINKLIST, где вы хотите, чтобы перейти к последней точке или узлу данных, как этот

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

где также указатель узла и он идет вперед к данным, хранящимся на разных местах

0

Это означает, что root является указателем, указывающим на нуль или не указывая ни одного узла.

Когда мы проверяем или перебирать его на связанный список, то мы используем непосредственно в то время как цикл, который выполняется до состояния не станет ложным

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++ вы использовали бы 0 или NULL.

Смежные вопросы