for循环中局部变量分配内存问题
for(;;)
{
int a=1;
}
像这种循环假如循环10次,a被赋值十次,第一次赋值和后面的几次赋值为什么不产生重复变量的错误?
第一次循环后,难道a就失效了?????
[解决办法]
局部变量的生命周期只在{}范围内有效。
那么换个思路来理解的话:
for( 语句1; 语句2; 语句3)
{
int a=1;
}
你知道循环执行顺序是:
语句1 -> 语句2 -> {} -> 语句3 -> 语句2 -> {} -> 语句3 -> 语句2 -> {} -> 语句3 -> 语句2
所以int a=1; 在 {} 之后,进入语句3的时候,就已经消失了。