私は、これはchar
でchar ch = '\117'
Javaで ' 117'が有効な文字リテラルであるのはなぜですか?
表現はどのような'\117'
ある として定義見てきましたか?
私はescaped-sequence
は、例えば、'\n'
知っている、またはunicode
はd
は、単一の16進数で`\udddd'
、ですが、私は私の全体の生活の中で'\117'
のようなものを見たことがありません! 驚いたことに、それはコンパイルします!それは、8進数でC/C++からホールドオーバだ
[文字と文字列リテラルのエスケープシーケンス](http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html)を参照してください。 #jls-3.10.6)。 – EJP
これは8進表記です。 [なぜJava 8進エスケープだけが255になるのですか?](http://stackoverflow.com/q/9543026/111424)、特に[rob mayoffの答え](http://stackoverflow.com/a/9543611/111424)を参照してください。 )。これはおそらく古い言語やプログラマーとの互換性のためです。 –