#c
#c
Вопрос:
Я работал над связанными списками и нашел образец. В этом примере говорится
while (currNode amp;amp; index > currIndex)
итак, какое логическое значение currNode ?
Комментарии:
1. Это зависит от типа
currNode
. Какой тип он имеет, влияет на то, что означает преобразование,bool
вызванное его использованием в логическом выражении И.2. Типы. Нам нужны типы. Все в C связано с типами. Каковы типы
currNode
,index
иcurrIndex
.
Ответ №1:
Скорее всего, это означает currNode != NULL
.
Во C
всем not 0
(таким образом, включая все not NULL
) рассматривается true
в логических контекстах.
Ответ №2:
currNode имеет значение true, если currNode не является указателем на NULL .
Ответ №3:
Этот код означает что-то вроде этого (в псевдо-C )
while (/* if currNode is integer type */
currNode != NULL amp;amp;
/* if operator int() is defined */
currNode.(operator int()) != 0 amp;amp;
/* if operator bool() is defined */
currNode.(operator bool()) != false amp;amp;
/* or some other defined cast operators */
index > currIndex)
Ответ №4:
Проверяется, что currNode не равен null
while(currNode !=NULL amp;amp; index > currIndex)
Ответ №5:
сделайте что-нибудь, пока currNode равен != 0, а currNode меньше индекса
Комментарии:
1. ИТАК, если я напишу «while (x)» в каком-то коде, это означает «обрабатывайте код между скобками while до x = 0».