上结论:for 循环内定义的变量的生命周期周期只有一次
举例:
for (int j = 0; j < 5; j++) {
int a = j;
}
按照一般的思路 a是被定义了5次,是明显的变量的重复定义。
但是事实上,这段代码在编译器中是可以编译通过的。
为啥?
原因是 每次定义的 a,其 生命周期只有一次循环的时间(比如 j=0的那次循环过后,a的内存空间就被回收了,也就不妨碍 j=1时 对a的定义了)
上结论:for 循环内定义的变量的生命周期周期只有一次
举例:
for (int j = 0; j < 5; j++) {
int a = j;
}
按照一般的思路 a是被定义了5次,是明显的变量的重复定义。
但是事实上,这段代码在编译器中是可以编译通过的。
为啥?
原因是 每次定义的 a,其 生命周期只有一次循环的时间(比如 j=0的那次循环过后,a的内存空间就被回收了,也就不妨碍 j=1时 对a的定义了)