比方说,我声明这个变量:有人可以向我解释为什么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',你会如何指定它是一个长文字?那么,为什么有两种方法来指定一个长文字,当你可以有一个? –