为什么打印?(C语言)

wad*_*far 2 c printing loops while-loop

为什么以下代码运行while循环?我认为"mid = term"是一项任务,而不是条件?请解释.谢谢.

#include <stdio.h>

main ()
{
    int mid = 4, term = 4;

    while ( mid = term)
    printf("%d\n", --term);
}
Run Code Online (Sandbox Code Playgroud)

lin*_*r27 8

赋值的结果是值.因此,表达式评估为4或非零,因此在C中TRUE.


Pet*_*hev 5

mid = term是一个评估的表达式term.所以while循环将一直运行term = 0.