武裂天穹全文阅读:C语言的小问题,进来看看

来源:百度文库 编辑:高校问答 时间:2024/05/02 18:33:15
void main()
{
int k=10;
while(k=0);
{
k=k-1;
printf("%d\n",k);
}
}
这段程序结果为什么是-1。

while(k=0);这是个空循环,因为while到后面那个分号就结束了,而且不是while(k==0);,所以k被赋值成0,k=0的值是0,while(0)就进不去这个空循环了。
k=k-1;//k==-1

在于while后面的(k=0),只有当K=0时才能执行while循环,当K=0时,K=K-1,K当就变成新值-1了.

while(k=0); 限定了k=0,k=k-1以后,就是-1了,改成
while(k)就行了

K=0是赋值语句,做判断用K==0,你那样写就是K=0,代进去算出来就是-1.

你是不是没看到while(k=0) 后面多了个分号阿; 因而后面的大括号就没什么作用了;
while(k=0);这个语句在这里的作用就相当于k=0;然后接着运行下面的语句了