Q.
int 1str;
int 2str;
上記は変数の宣言だが、間違いを指摘せよ。
A.
int str1;
int str2;
変数に数字をつけたいなら頭ではなく、お尻につけるのが正解。
解説
変数の頭に数字が使えない理由は下記の理由からである。
コンパイラはソースコードを、まず単語単位(トークンという)で切り出してから、
int 1str;
int 2str;
上記は変数の宣言だが、間違いを指摘せよ。
A.
int str1;
int str2;
変数に数字をつけたいなら頭ではなく、お尻につけるのが正解。
解説
変数の頭に数字が使えない理由は下記の理由からである。
コンパイラはソースコードを、まず単語単位(トークンという)で切り出してから、
その単語の意味を解析します。
その時、単語の一文字目が、1〜9の数字だった場合、それ以降を10進数の数値として解釈します。
全てが数字だけであれば、整数として、.が含まれていれば実数として。
(1. を1.0と解釈するかはコンパイラ次第だっけ?)
一文字目が0だった場合には、その次の文字を読んで、0〜7なら8進数、xなら16進数、みたいに解釈します。
そういう理由で、変数や関数の一文字目には、数字は使えません。
まとめ)
コンパイラは
数値が来た場合、
0 の次の文字が0〜7 8進数
x だと16進数
例 0x000B は10進数における11
0以外 1〜9 10進数
まとめ)
コンパイラは
数値が来た場合、
0 の次の文字が0〜7 8進数
x だと16進数
例 0x000B は10進数における11
0以外 1〜9 10進数