回答編集履歴
1
誤り訂正
answer
CHANGED
@@ -5,5 +5,5 @@
|
|
5
5
|
x86、x64は、リトルエンディアン(変数の最下位バイトが先頭になる)なので、int型変数の最下位バイトに格納され、それ以外のバイトは不変です。
|
6
6
|
自動変数の初期値は不定ですので、不変だった最下位以外のバイトの中身は不定です。つまり、そのint型変数の数値としての値は不定です。
|
7
7
|
|
8
|
-
あらかじめint型変数(仮に4バイトとする)に0を代入しておけば、最下位バイトだけ書き換えられて、`a`を入力すると`
|
8
|
+
あらかじめint型変数(仮に4バイトとする)に0を代入しておけば、最下位バイトだけ書き換えられて、`a`を入力すると`0x00000061`になり、char型変数の`0x61`と数値として一致します。
|
9
9
|
そんなことをするくらいなら、`scanf("%c",&a);`じゃなくて、`a = getchar();`が良いです。
|