- C言語なら俺に聞け 151
586 :デフォルトの名無しさん (ワッチョイ 462d-EL+e)[sage]:2019/05/21(火) 06:44:08.98 ID:UPiNM42a0 - >>584
20年前くらいの知識で、しかも完全に理解してるわけではないので、間違っていたらゴメンだけど。 変数について言えば、Java の final 変数は、値が未定義かどうか、という情報を内部的に持っていて。 もし、変数の値が未定義の場合は、1回だけ代入できたはず。例えば final int i; System.out.println("test"); i=4; System.out.println(i); i=5; System.out.println(i); の場合、1回目の代入(i=4)は許されるけど、2回目の代入(i=5)は怒られる。 それに対して、(C89の頃のだけど)Cのconst変数は・・・ const int i; printf("test\n"); i=0; printf("%d\n",i); 1回目の代入(i=0)であっても怒られる。 みたいな感じの違いはあったような。最近のCやJavaは知らないんだけどね。 あまり自信がないので、詳しい方のレスを待ちましょう。
|