質問するログイン新規登録

回答編集履歴

1

誤り訂正

2018/09/07 13:17

投稿

otn
otn

スコア86367

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