我读到默认情况下,十进制文字是带符号的。为简单起见,假设int
可以容纳的值是整数[-128,127],long
可以容纳整数128。现在,如果我对文字-128进行编码会怎样?我所知道的是,这里的文字只是“ 128”,它不能放入int
中,而是会放入long
中!还是一元减运算符做其他事情?那么,一元减号如何与整数文字一起使用?
如您的示例,当使用十进制基数且不带后缀时,可能的类型为整数文字的类型是该值适合的第一种类型,这取决于使用哪个数字基数和使用哪个[[integer-suffix的类型列表。
int
,long int
和long long int
。如果该值(忽略减号)适合long
,但不适合int
,则该值的类型为long
。确定类型后,一元减运算符将正常应用。对long
应用一元减会导致long
(即使结果可能适合int
)。