为了账号安全,请及时绑定邮箱和手机立即绑定

关于C语言for循环的梗 求解

关于C语言for循环的梗 求解

C
荒小北158 2017-01-04 10:46:19
单选(3分)假设有定义:int k;for (k=1; k; k++);      printf ("%d ", k);第二个表达式k   怎么去理解呢?也就是这个代码为什么能运行,,感觉死循环   
查看完整描述

4 回答

?
张春林1

TA贡献1条经验 获得超1个赞

不是死循环,因为整数int类型会溢出,当k自增长到2的32次方-1(实际print出来是-1)的时候,再执行一次k++就会变成0从而跳出循环。
查看完整回答
1 反对 回复 2017-01-05
  • 荒小北158
    荒小北158
    不是特别明白你说的 。。。能再详细一点跟我解释一下嘛?谢谢!
  • MASTERSHU
    MASTERSHU
    是这个道理,k不会一直满足!当到达上限后会溢出!int是不是无符号的,最高位是符号位,如果为1的话是就代表负数位
?
满天星17

TA贡献8条经验 获得超1个赞

第二个是循环条件,如果满足就一直循环下去。
查看完整回答
反对 回复 2017-01-04
?
胖达瑶向前冲

TA贡献1条经验 获得超0个赞

能运行。但是个死循环

查看完整回答
反对 回复 2017-01-04
?
MASTERSHU

TA贡献30条经验 获得超10个赞

首先,.你这题就没有截取完整,其次,for循环的三个表达式,初始化k,判断是否继续记性循环,执行循环后的操作.运作流程就是

先for循环首先执行,for内的第一个语句,k赋值1,然后判断第二个表达式是否成立,k为1,成立,执行打印k语句,然后执行k++,再判断k是否为true,是true,继续打印k,然后再k++,再判断k,一直循环下去!一直到k不成立!!!哈哈

查看完整回答
反对 回复 2017-01-04
  • 荒小北158
    荒小北158
    题目就是这样的 哈哈 我也不是特别明白 感谢回答!
?
东方既白233

TA贡献16条经验 获得超9个赞

会一直循环下去  第二个表达式k表示不对k加以限制,相当于空格,就是一直满足条件循环下去。

相当于for(k=1; ;k++)

查看完整回答
反对 回复 2017-01-04
  • 4 回答
  • 0 关注
  • 2417 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信