1 回答

onemoo
TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊
你在三個(gè)語(yǔ)言分區(qū)中都問(wèn)了這個(gè)問(wèn)題,那么你想問(wèn)這代碼在三種語(yǔ)言中的行為嗎?
在 C 和 Java 中,第一個(gè)問(wèn)題的回答是:是的。
C 語(yǔ)言中,int x; 就算是定義。Java 中這樣的本地變量也是有值的。只不過(guò)它們的初值都是未定義的。
C# 我不了解。
至于第二個(gè)問(wèn)題:你完全沒(méi)有必要考慮這種過(guò)于細(xì)節(jié)的所謂“優(yōu)化”,編譯器完全會(huì)處理好這些的(它可能會(huì)把這兩種代碼優(yōu)化成同樣效率的結(jié)構(gòu))。
通常在寫代碼時(shí)最優(yōu)先考慮的是代碼的邏輯性和可讀性。具體來(lái)說(shuō),如果 x 只會(huì)用在循環(huán)中,更推薦將 x 寫在循環(huán)體里。這樣更具邏輯性,也把 x 的作用域限制在循環(huán)體中,避免 x 不必要地傳播到循環(huán)體外面。
添加回答
舉報(bào)
0/150
提交
取消