for循环本质
菜鳥:為什么在for循環(huán)里重復(fù)定義變量不會(huì)報(bào)錯(cuò)?
如下代碼1,因?yàn)橹貜?fù)定義了兩個(gè)變量 a ,編譯器報(bào)錯(cuò)。 void main() { int a; int a; return; } 如下代碼2,用for循環(huán)也是定義了兩個(gè)變量a, 編譯器卻不報(bào)錯(cuò) void main() { for(int i=0;i<2;i++) { int a; } return; } 我...如下代碼1,因?yàn)橹貜?fù)定義了兩個(gè)變量 a ,編譯器報(bào)錯(cuò)。void main()
{
int a;
int a;
return;
}
如下代碼2,用for循環(huán)也是定義了兩個(gè)變量a, 編譯器卻不報(bào)錯(cuò)
void main()
{
for(int i=0;i<2;i++)
{
int a;
}
return;
}
我的問(wèn)題是:
1. 為什么用for循環(huán)重復(fù)定義的變量不會(huì)報(bào)錯(cuò)??????
2. 最終系統(tǒng)是怎樣給代碼2分配內(nèi)存的? 在該函數(shù)的棧上 有兩個(gè)相同名稱的變量嗎? 這樣好像應(yīng)該不可以吧。。。。。
for循環(huán)本質(zhì)上就是一個(gè)函數(shù)
在for中這個(gè)int a壽命只有一次循環(huán)
即每次循環(huán)之后a的內(nèi)存就被回收了 下次循環(huán)再分配一個(gè)
總結(jié)
- 上一篇: 优秀程序员和一般程序员差别在哪?
- 下一篇: 长寿的人会有的8个健康理念