- 476 名前:467 mailto:sage [2008/08/21(木) 23:50:32 ]
- レスありがとうございます。
手元の本で関連がありそうな所を漁ると、 (1) 「char(数値を格納した)、short、byteのint以下の範囲の数値を格納する型は、 たとえその型の範囲内の数値でもその式を評価すると全てintになる。」 (例) byte a=1; byte b=2; a+b ←byteの範囲内でもint型 (2) 「short,char,byteのint以下の範囲の数値を格納する型に数値を格納する際、 数値はint型として評価されるが簡略化のためキャストを行わなくても コンパイラが自動的にキャストする」 (例) byte a=1; ←コンパイラが自動で(byte)1としてくれるので有効。 この二つの記述があり、それを踏まえてbyte a=1+2は(2)により有効なのですが、 これが467で書いたように変数で行うとコンパイラの自動キャストが働かないのが謎なのです。 もちろん>>473の方が書いてくれたように自分で明示的にキャストすれば通るのですが。
|

|