循环中的变量变化

时间:2013-04-25 03:42:18

标签: c variables loops

所以这更像是一个理论问题,但现在就是这样。说我有以下C代码:

for(parameter) {
    //do something
    if(condition) {
        variable = Value; 
    }
}

假设循环运行了几次并且还说第一次循环时条件满足。但第二次循环不满足条件。变量是否仍然等于第一个循环中分配的值?

1 个答案:

答案 0 :(得分:2)

是的,除非您明确更改了值,否则它将是第一次迭代中指定的值。

请注意,仅当控件位于for循环中时才会这样。一旦控制超出了函数,variable中的值将取决于它的存储类,即:如何声明它。如果它是一个本地/自动变量,它不存在超出函数{ }的范围,而如果它是static它在整个程序生命周期内保持活动状态并保持状态。


  

我认为这更像是为什么问题

因为通常,C和C ++中的变量在 alive 时保留其值。

自动/局部变量在定义它的范围{ }内是活动的。因此它将保留分配给它的值(除非明确更改),直到控制范围内。

staticglobal变量在整个程序生命周期内都存在。所以他们会保留分配给他们的值(除非明确更改),直到程序结束。