C语言中while和do-while循环的主要区别是(do-while的循环体至少无条件执行一次)。
while(--k) printf("%d\n", k=1);
表示当--k不等于0时,输出1。
该语句等价于:
while(--k) // 如果--k不为0,则执行循环体语句
{
k=1; // 对变量k进行赋值
printf("%d\n", k); // 输出k的值,即1
}
while(x)的意思是:如果x不等于0,判断为真,则执行下面的语句。
相反,while(!x),当x为0的时候, 判断为真,进入循环,也就相当于while(x==0)。
while()中是逻辑判断语句;
只有两种值,0 和!0;
0为假,!0为真;
while()中!0时进行循环;