比如byte b = 1; char c = 1;
,如果整数类型默认是int类型的话,那么byte b = 1;应该需要强转换才对,因为int是高精度的,但这里明显不报错,这是为什们呢?
迷茫2017-04-18 10:53:57
まず、整数型のデフォルトは int です。これについては疑いの余地がありません。
次に、許可される型の範囲内で、ここではバイト: -128~127 です。
整数 int 1 がこの範囲内にある場合、コンパイラーは自動的に定数の下位変換を実行します。
定数がこの範囲を超える場合、コンパイラは直接エラーを報告します。
天蓬老师2017-04-18 10:53:57
間違っています。2 つの整数が int 以下の場合、デフォルトは int になります。
2 つのバイト変数を宣言し、それらを追加して別のバイト変数に割り当てようとすると、コンパイラによってエラーが表示され、強制的な型変換が必要になります。