看C语言的视频,其中一个关于!finished的案例看不明白,这是我自己写的简化版
#include <stdio.h>
int main() {
int finished = 0;
do{
printf("0\n"); // 值为0
if(!finished) { // ??
printf("1\n");
}
finished = 2; // 值改为2
printf("%d\n", finished);
} while(!finished); // 结束循环
}
如果不改值,会循环输出010101……
按我的理解,原本的值是0,!finished就是非0的意思,为什么会在 if 语句中输出呢?