在用到循環的時候時常會出現這兩代碼。
第一種在 循環里面定義變量
如果
for(int i=0;i<100;i++)
{
int j=i+10;
????? ..................
}
?
另外一種是
int j=0;
for(int i=0;i<100;i++)
{
? j=i+10;
????? .........................
}
這兩種代碼中,第一種 j 是在循環中不停的被聲明。 第二種方法中 j 只被聲明一次。
這兩種代碼中感覺上是第二種更好。但原因為是什么? 不明白。 不停的在 循環中聲名變量有什么壞處?
12 回答

嗶嗶one
TA貢獻1854條經驗 獲得超8個贊
第一種看起來不亂,避免在其他地方被調用而修改內容,而且在for循環結束時j就會被銷毀,而第二種方法要等到整個方法結束時才被銷毀,這樣就節省了內存。另外,不管在哪里聲明字段,第一次編譯的時候都會先把所有的字段聲明存放在程序的開頭。

元芳怎么了
TA貢獻1798條經驗 獲得超7個贊
第二種好。
第一種情況是:變量會不斷地被聲明,分配空間,銷毀空間。
第二種情況是:變量只聲明一次,但是生命周期很長,只有在變量聲明部分的“}”之后才會自動被釋放??梢詢灮氖?,在循環結束后,手動銷毀這個變量。
但是第二種方法消耗的內存和CPU時間會少些。

喵喔喔
TA貢獻1735條經驗 獲得超5個贊
第二種方式更好!
第一種方式,變量 j 會循環聲明 100 次,分配內存空間,然后再銷毀,浪費資源。
第二種方式,變量 j 僅聲明一次,循環結束后就會釋放。
- 12 回答
- 0 關注
- 429 瀏覽
添加回答
舉報
0/150
提交
取消