ページ 11

変数の宣言および初期化を行う文について

Posted: 2020年10月22日(木) 02:59
by Tamo
下記の質問の解答がわかりません。//の後に考え方を書いていますが正解では無いようです。
初歩的な問題ですが教えて頂けると幸いです。

質問[変数の宣言および初期化を行う文として,適切でないものを解答群の中からすべて選んでください.]

Int 1100=p; //こちらはpが整数でないので誤り。
Double D-langeg,program; //こちらは-がはいっているので誤り
Int Tanaka, Online, Kikuchi; //こちらは=がないので誤り
int ABCdef; //こちらは=が無いので誤り
Double abc_DEF=12.3; //←のみ正解

Re: 変数の宣言および初期化を行う文について

Posted: 2020年10月22日(木) 06:10
by あたっしゅ
考え方は、あっている。
「適切でないものを選べ」だから、「誤り」の4つを選ぶのが正解なんじゃないのか ?
もちろん、int や double の先頭を大文字にするのは、誤りだが。
あと、int 1100=p; は、右辺と左辺が逆。int p=1100;

Re: 変数の宣言および初期化を行う文について

Posted: 2020年10月22日(木) 06:22
by あたっしゅ
 追加。

 if 文で

コード:

if( 1100==p ) {
    abcDEF=12.3;
}
 わざと、== の右辺と左辺をひっくり返して書くことがある。
これは、間違って 1100=p と書いた時にエラーになるようにするため。

 でも、最近のコンパイラは、「比較じゃなくて、代入でいいんですか ?」と、
ちゃんと警告してくるので不要なテクニック。

 だが、昔のコードで、そういうのが残っているので、ギョッとしないように。

Re: 変数の宣言および初期化を行う文について

Posted: 2020年10月22日(木) 07:22
by みけCAT
IntやDoubleは独自に定義した型の可能性があり、誤りだとは限りません。
明示的に初期化されていないグローバル変数は「ゼロ」に初期化されるので、=がないからといって誤りとは限りません。