0
所以这是一个更理想的问题,但在这里。假设我有以下C代码:循环中的变量变化
for(parameter) {
//do something
if(condition) {
variable = Value;
}
}
说循环运行多次,并且还说第一次循环时条件满足。但第二次循环条件并不令人满意。变量是否仍等于第一个循环中赋值的值?
所以这是一个更理想的问题,但在这里。假设我有以下C代码:循环中的变量变化
for(parameter) {
//do something
if(condition) {
variable = Value;
}
}
说循环运行多次,并且还说第一次循环时条件满足。但第二次循环条件并不令人满意。变量是否仍等于第一个循环中赋值的值?
是的,除非您明确更改了值,否则将是第一次迭代中指定的值。
请注意,只有当控件位于for循环内时。一旦控制超出该函数,variable
中的值将取决于其存储类别,即:它是如何声明的。如果它是一个本地/自动变量,它不会超出函数{ }
的范围,而如果它是static
,它将在整个程序生命周期内保持活动状态并保持该状态。
我是想多了,为什么问题
的,因为作为一个规则,在C和C++的变量,而他们活着保留他们的价值观。
一个自动/本地变量在{ }
范围内存在,它在其中被定义。所以它会保留分配给它的值(,除非明确更改)直到控制仍在范围内。
static
和global
变量在整个程序生命周期中都是有效的。因此,他们保留分配给他们的值(,除非明确更改),直到程序结束。
为什么不呢? – Zirak 2013-04-25 03:46:19
我的意思是更多的是为什么问题。 – codedude 2013-04-25 03:56:29