12
long val = 5000000000;

この割り当て中のエラーは次のとおりです。

int 型のリテラル 5000000000 が範囲外です

inttypeで宣言されている場合、コンパイラはデフォルトでリテラルが型であると想定するのはなぜlongですか?

4

4 に答える 4

21

以下を使用できます。

long val = 5000000000L;

ここで確認してください

于 2013-09-12T06:12:21.263 に答える
6

long には特定の接尾辞がありますL。サフィックスがない場合は、5000000000 がint型と見なされます。また、5000000000 はint範囲外であり、エラーが発生します。Lしたがって、値として扱うには、5000000000 の最後に追加する必要がありlongます。から宣言を変更します

long val = 5000000000;

long val = 5000000000L;
于 2013-09-12T06:14:32.450 に答える
3

long: long データ型は、64 ビットの符号付き 2 の補数の整数です。最小値は -9,223,372,036,854,775,808 で、最大値は 9,223,372,036,854,775,807 (包括的) です。

変数を初期化するために明示的に使用される値に「l」または「L」を追加する必要があります。0 のように小さくても。

 long val = 0L;
于 2013-09-12T06:15:05.657 に答える
3

以下に示すように、番号の末尾に文字 L を追加します

長い値 = 5000000000L;

于 2013-09-12T06:13:00.460 に答える