比方說,我聲明這個變量:有人可以向我解釋爲什麼L(long)必須在那裏嗎?
long k = 1060606060000;
如果我這樣做,我得到一個錯誤,因爲數字顯然是要大的整數。爲什麼我必須在編譯器的最後添加L以識別它是一個長變量?儘管我明顯地說我需要k是長型的。
比方說,我聲明這個變量:有人可以向我解釋爲什麼L(long)必須在那裏嗎?
long k = 1060606060000;
如果我這樣做,我得到一個錯誤,因爲數字顯然是要大的整數。爲什麼我必須在編譯器的最後添加L以識別它是一個長變量?儘管我明顯地說我需要k是長型的。
因爲文字值將始終被解釋爲int
,如果沒有附加l
或L
。
如果沒有指定l
,您應該將文字int
分配給類型爲long
的變量。
在編譯時,編譯器首先檢查文字值,如果沒有追加l
或L
,則它會將其解釋爲int
。
現在,如果數量大於Integer.MAX_VALUE
,編譯器將顯示錯誤。
因爲添加L,你告訴相似的「嘿順便說一句,這是一個長類型......」 –
那麼爲什麼還要在開頭添加長長呢? – Geddi
@Geddi如果你有一個數字不是「明顯」太長以至於不能像'0'那樣適合'int',你會如何指定它是一個長文字?那麼,爲什麼有兩種方法來指定一個長文字,當你可以有一個? –