for(i=0,k=-1;k=1;k++) printf("*****\n");

benbudong 2011-08-12 09:55:05
若i和k都是int类型变量,有以下for语句
  for(i=0,k=-1;k=1;k++) printf("*****\n");
这为什么是无限循环呀?
...全文
1501 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
小牛毛 2011-08-12
  • 打赏
  • 举报
回复
==不是=
xingzhiyaoni321 2011-08-12
  • 打赏
  • 举报
回复
=_= <嘿嘿>!
l369294289 2011-08-12
  • 打赏
  • 举报
回复
=是赋值,==才是等号
gjlzjb 2011-08-12
  • 打赏
  • 举报
回复

楼主for(i=0,k=-1;k=1;k++) printf("*****\n");
k=1是赋值的.

养成好习惯,常数写在等式的左边
所以写成for(i=0,k=-1;1=k;k++) printf("*****\n");也会编译错误
正确的: for(i=0,k=-1;1==k;k++) printf("*****\n");


genio 2011-08-12
  • 打赏
  • 举报
回复
因为k=1是赋值,永远为真
icemornings 2011-08-12
  • 打赏
  • 举报
回复
k = 1;是赋值操作,(k = 1) == 1永远为真。

70,005

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧