Blood-Steel 2022-01-08 22:41 采纳率: 100%
浏览 46
已结题

求解决C语言for循环的问题

img

img


本人萌新 求大佬解决 谢谢 为什么答案是1,2 不是2,2

  • 写回答

2条回答 默认 最新

  • 关注

    任何变量都是有作用域的,普通变量的作用域为它所在的{}内,所以在for循环中
    int m =1;这个变量的作用域就在for循环的{}内,出了for循环的{}后,就被系统回收了。
    而main函数中 m=1这个值的作用域是整个main函数,所以,在printf中,输出的m的值,就是最开始的m,也就是1,而不是for循环中的m。
    另外,当有重名的变量时,优先使用距离最近的变量,所以在for循环中,m++和 n=m中的m都是在for循环中声明的m,所以
    if(i==4) n=m这里给n赋值的时候,用的是for循环中的m

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月17日
  • 已采纳回答 1月9日
  • 创建了问题 1月8日