永发信息网

为什么在C++中for循环时把变量放在里面仍会变

答案:4  悬赏:60  手机版
解决时间 2021-04-28 21:50
  • 提问者网友:两耳就是菩提
  • 2021-04-28 06:07

在一个for循环里面,

int i=1

for(;i<=10;i++)

{

………………

}

cout<<i<<endl;

i应该算是for循环里面的变量变化才对啊,为什么最后用程序实现的时候输出的i还是为101呢?不是应该是1吗?

最佳答案
  • 五星知识达人网友:枭雄戏美人
  • 2021-04-28 07:29

因为i在循环体之外定义了,for里面有个i++,所以会这样。


如果是for (int i=1;i<=10;i++),那么循环体之外的i就不存在了。

全部回答
  • 1楼网友:孤老序
  • 2021-04-28 10:30
你把它定义为全局变量了,从分配内存来看,在给a实例化得时候,分配了一个内存空间,在i自增的时候,它会把它的得到的新值存入到内存空间里,取代了原来的值,直到程序结束,释放内存。
  • 2楼网友:煞尾
  • 2021-04-28 09:29
先确认一点:for()也是一个函数,要for里面定义的变量for才有资格销毁,main函数定义的变量是没资格让for来销毁的
  • 3楼网友:雪起风沙痕
  • 2021-04-28 08:34

在循环体内定义的变量才是这个循环里面的局部变量,在循环结束是会被销毁的。

如果在循环体外定义的变量,在循环结束时不会被销毁,其中存储的数值会保持最后一圈循环的状态。

如果在循环体外和循环体内重复定义同一个变量名的变量,在循环结束时被销毁的是循环体内定义的变量。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯