long val = 5000000000;
此分配期间的错误是“int类型的文字5000000000超出范围”。为什么编译器默认假定文字为int ??
答案 0 :(得分:18)
答案 1 :(得分:4)
长期存在特定的后缀,即L
。如果没有后缀,则假定5000000000为int
类型。并且5000000000超出int
范围,导致错误。因此,您需要在5000000000末尾添加L
,以便将其视为long
值。从
long val = 5000000000;
到
long val = 5000000000L;
答案 2 :(得分:3)
在数字末尾添加字母L,如下所示
长val = 5000000000L;
答案 3 :(得分:0)
long:long数据类型是64位带符号的二进制补码整数。它的最小值为-9,223,372,036,854,775,808,最大值为9,223,372,036,854,775,807(含)。
您应该将“l”或“L”附加到显式用于初始化变量的值;甚至小到0。
long val = 0L;