C语言for循环中有赋值语句,无线循环,求解释!

for(i=0,k=-1;k=1;i++,k++)为啥是无限循环,求解释。... for(i=0,k=-1;k=1;i++,k++)为啥是无限循环,求解释。 展开
 我来答
风若远去何人留
2016-08-29 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450110
专业C/C++软件开发

向TA提问 私信TA
展开全部
中间的k=1是判断条件 或者说是退出条件
这里是赋值
于是 恒为1
导致死循环
如果是k==1 那么就不会无限循环了。
追问
谢谢!我想再问一下,for(; ;)也是无限循环嘛?
追答
是的
是否是无限循环 看两个地方
一个是for括号里的第二个部分,是否可能为假。 如果为空或者恒为真,那么可能是无限循环。
另一个 是for循环体里面是否有break语句,以及是否可能被执行到。
如果不存在break 或者break永远不会被执行到,那么可能是无限循环
另外,循环中的return语句, exit()函数等,与break同样可以退出循环。

只有以上两个 均满足的情况下,才是无限循环。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式