08/08/21 23:03:20
byte a=5;
byte b=6;
byte c=a+b;
これって3行目がc=5+6なら通るのになんでエラーになるんでしょうか?
大きいintの値を小さいbyteに入れようとするから普通は一行目からエラー
だけれども、それだと面倒だからコンパイラが親切で自動でキャストしてくれるから
一二行目はエラーにならないみたいな話を本で見たので、それが行われないって話だと思うのですが、
byte+byteはint以下の数値を扱う式はintとして評価される、というルールから
intになるので自動でキャストしてくれそうだと思ったのですが。