c语言中while的问题
#include<stdio.h>
void main()
{
int k=0;
while(k=1)
k++;
printf("%d",k);
}
while的括号里面不应该是两个等于号吗?一个等于号的话,程序结果为什么是死循环。
如果把while换成if,为什么运行结果是2?
在c语言里一个等于号的意思是赋值
就是说k=1是把1赋给了k
而逻辑等于应该用两个等号
然后while和if的判断方式中,1的值表示true,就是说while(k=1)是把1赋给k之后进行对k的true和false的判断,每次都是true,所以会死循环
if判断同理,它会先把1赋给k,然后判断结果是true,执行下一语句k++,k就从1变成了2
while(!a) 表示当a为false(或a等于0)时,执行while循环体,否则不执行。其等价语句为 while(a==0)。
热门标签: