c语言中跳出for循环体循环变量的变化
c语言中跳出for循环体循环变量的变化。比如说for(i=0;i<7;i++){循环体},当i大于7跳出循环体时循环变量如和变化,是重新变回0吗?...
c语言中跳出for循环体循环变量的变化。比如说for(i=0;i<7;i++){循环体},当i大于7跳出循环体时循环变量如和变化,是重新变回0吗?
展开
展开全部
最有效率的办法就是i不变化。所以在c语言里当循环退出时,i会保留原来的值,也就是7
追问
那请问如果是循环嵌套呢,外循环没变化一次,内循环都要从初值变到终值。不也就隐含了要将内循环执行完之后的循环变量清零了吗?书上是这么写的,我已我就不懂了。
追答
上面的for语句已经包含了循环变量初始化(i=0)。如果循环开始时这样做的话,循环变量会在循环开始时清零,不是之后...
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(i=0;i<7;i++)
{
循环体
}
跳出循环后,i的值当然已经是自增以后的值7了,不会是0
{
循环体
}
跳出循环后,i的值当然已经是自增以后的值7了,不会是0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是静态局部变量,i的值也会被保留,只是其他函数无法调用i的值,即i的作用域仅限于i所在的函数;
但如果是局部变量,当跳出i所在的函数后,i的空间将会被释放,这样i的值也不会被保留,当下次再访问该函数时,i还是会以初始值的状态被使用,并且i的作用域仅限于i所在的函数;
如果是全局变量,又分为外部全局变量和内部全局变量,如果是内部全局变量,那该变量作用于整个源文件,如果是外部全部变量,则在调用时,需要申明后,才能调用.
但如果是局部变量,当跳出i所在的函数后,i的空间将会被释放,这样i的值也不会被保留,当下次再访问该函数时,i还是会以初始值的状态被使用,并且i的作用域仅限于i所在的函数;
如果是全局变量,又分为外部全局变量和内部全局变量,如果是内部全局变量,那该变量作用于整个源文件,如果是外部全部变量,则在调用时,需要申明后,才能调用.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那要看你是在哪里定义的循环变量,如果是局部变量的话,在模块内跳出循环后i的值在不被改变的情况下等于7,退出模块后,无法访问到i,也就是说在外部模块i是不可见的;如果是全局变量,那么在翻译单元内,i的值都为7(在不被改变的情况下).
追问
那请问如果是循环嵌套呢,外循环没变化一次,内循环都要从初值变到终值。不也就隐含了要将内循环执行完之后的循环变量清零了吗?书上是这么写的,我已我就不懂了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当执行完成循环体,且循环体无中断语句。最后i=7。
i在作用域内一直保持,取决于其生存期。
i在作用域内一直保持,取决于其生存期。
追问
那请问如果是循环嵌套呢,外循环没变化一次,内循环都要从初值变到终值。不也就隐含了要将内循环执行完之后的循环变量清零了吗?书上是这么写的,我已我就不懂了。
追答
for(语句1;语句2;语句3;){循环体}
理解for循环的语法规则。每次进入for循环复合语句,会首先执行语句1!并立即判断语句2,满足条件执行循环体内容,最后执行语句3并再次判断语句2。条件不满足立即结束。
【1】每次进入,i初值会被改写成0(语句1实现的);
【2】每次退出,通常是7。如果循环体中有i的赋值操作或break、return之类的语句另行分析。
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询