qq_43412960 2019-10-25 16:59 采纳率: 78.6%
浏览 360
已采纳

这是一个关于C语言for循环的问题

图片说明
上图展示了我调试索引值的过程,我的目的是通过调试探究for( ; ; )用分号分割的三部分,他们的执行顺序。上图,黄色箭头指向的是}界符。此时n=9

图片说明

我又按了一下f10单步调试,此时箭头指向for(::),n为9
再次按f10
图片说明
直接跳出for循环,由此可以看出,for循环执行顺序,应该是先执行n++,这时候n为10,再执行n<N,所以跳出。
后来我 又思考了一下,如果是这么执行的话,n==0无法在for块内发挥作用了。但是经过调试,n==0时,在for内容块中发挥了作用。也就是说for(;;)先执行中间,在
我很懵逼,n==0得出的理论和n==9得出的结论矛盾,求大佬们帮我玩解决疑惑

  • 写回答

3条回答 默认 最新

  • threenewbee 2019-10-25 17:31
    关注
    不是,先执行n=0
    再判断n<N
    然后执行循环体,之后才是n++
    
    你再仔细想一想。不可能错的。
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 matlab实现基于主成分变换的图像融合。
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊