这只是一个例子,但在这个循环(或任何其他循环)中实际上是什么逻辑和(&&)运算符。 并且这条线中的“&&”意味着“等于&&(first-> number == end-> number)”,知道equal是一个像布尔一样使用的int - 它存储0或者1。
for(i=1; i<=n/2 && equal; i++){
equal=equal&&(first->number==end->number);
first=first->next;
end=end->previous;
}
答案 0 :(得分:1)
只有当i<=n/2
和equal
都为真时,循环才会继续(如果!= 0,则equal
被视为为真。)
equal=equal&&(first->number==end->number);
这一行意味着equal
只有在它已经为真并且条件first->number==end->number
也为真时才为真。
因此,您的代码正在向前移动列表的开头,向后移动,只有当您到达列表的一半(n/2
)或者第一个和最后一个值不同时,它才会停止。