亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

變量聲明時就在內存開辟空間嗎?

變量聲明時就在內存開辟空間嗎?

qq_殺意隆_0 2018-03-17 11:21:28
int?x;?//?這一句是否已經開辟了空間? x?=?1;如果是的話:int?x; while(true) { ????x?=?1; } //上面代碼比下面代碼性能高? while(true) { ????int?x?=?1; }
查看完整描述

1 回答

?
onemoo

TA貢獻883條經驗 獲得超454個贊

你在三個語言分區中都問了這個問題,那么你想問這代碼在三種語言中的行為嗎?


在 C 和 Java 中,第一個問題的回答是:是的。

C 語言中,int x; 就算是定義。Java 中這樣的本地變量也是有值的。只不過它們的初值都是未定義的。

C# 我不了解。


至于第二個問題:你完全沒有必要考慮這種過于細節的所謂“優化”,編譯器完全會處理好這些的(它可能會把這兩種代碼優化成同樣效率的結構)。

通常在寫代碼時最優先考慮的是代碼的邏輯性和可讀性。具體來說,如果 x 只會用在循環中,更推薦將 x 寫在循環體里。這樣更具邏輯性,也把 x 的作用域限制在循環體中,避免 x 不必要地傳播到循環體外面。

查看完整回答
1 反對 回復 2018-03-17
  • 1 回答
  • 0 關注
  • 2673 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號