【问题标题】:Variable change in loop循环中的可变变化
【发布时间】:2013-04-25 03:42:18
【问题描述】:

所以这更像是一个理论问题,但这里有。假设我有以下 C 代码:

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

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

【问题讨论】:

  • 我的意思更多是一个为什么的问题。

标签: c variables loops


【解决方案1】:

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

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


我的意思是它更像是一个为什么的问题

因为通常情况下,C 和 C++ 中的变量在活着时会保留它们的值。

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

staticglobal 变量在整个程序生命周期内都是活动的。因此它们会保留分配给它们的值(除非明确更改),直到程序结束。

【讨论】:

    猜你喜欢
    • 2015-07-19
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 2023-03-28
    • 2018-06-23
    • 2023-03-19
    相关资源
    最近更新 更多