回答編集履歴
3
コメントに基づき一部修正
test
CHANGED
@@ -68,4 +68,4 @@
|
|
68
68
|
|
69
69
|
|
70
70
|
|
71
|
-
質問者のコードは内側の i を定義しただけで値をセットしていません。**不定値**です。値が無いのではありませんよ、値が不定なだけ。だってメモリには何かの値があるのだから。割り当てられたメモリに残っていた値が表示された
|
71
|
+
質問者のコードは内側の i を定義しただけで値をセットしていません。**不定値**です。値が無いのではありませんよ、値が不定なだけ。だってメモリには何かの値があるのだから。普通、割り当てられたメモリに残っていた値が表示されるのだけど、この場合はデバッガがセットした値だそうです、コメントをお読みください。~~私的には不思議な表示ですが、文字化けのようなものかな。残っていた値は~~ -52 = 0xCC である、これは半角カタカナの「フ」かもね、と表示したんだな。0xCC が int3(デバッグ割り込み)ということは、プログラムのバグで、ここを「実行」しちゃったらただちにデバッガに捉えられるという仕掛けなんですね。
|
2
訂正追加
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
はっきり言いましょう。
|
1
|
+
良い質問です。はっきり言いましょう。
|
2
2
|
|
3
3
|
int i; と char i; は、**同名「i」だけど、別の変数だから**。もちろん割り当てられるメモリも違う。
|
4
4
|
|
@@ -46,7 +46,7 @@
|
|
46
46
|
|
47
47
|
```
|
48
48
|
|
49
|
-
ほらね、アドレスが違う。コードブロックの内側で
|
49
|
+
ほらね、アドレスが違う。コードブロックの内側で 'A' を代入したのに、外側が0のままなのは、別の変数だから。
|
50
50
|
|
51
51
|
|
52
52
|
|
@@ -68,4 +68,4 @@
|
|
68
68
|
|
69
69
|
|
70
70
|
|
71
|
-
質問者のコードは内側の i を定義しただけで値をセットしていません。**不定値**です。値が無いのではありませんよ、値が不定なだけ。だってメモリには何かの値があるのだから。割り当てられたメモリに残っていた値が表示されたのです。私的には不思議な表示ですが、文字化けのようなものかな。
|
71
|
+
質問者のコードは内側の i を定義しただけで値をセットしていません。**不定値**です。値が無いのではありませんよ、値が不定なだけ。だってメモリには何かの値があるのだから。割り当てられたメモリに残っていた値が表示されたのです。~~私的には不思議な表示ですが、文字化けのようなものかな。~~残っていた値は -52 = 0xCC である、これは半角カタカナの「フ」かもね、と表示したんだな。了解。
|
1
語尾修正
test
CHANGED
@@ -68,4 +68,4 @@
|
|
68
68
|
|
69
69
|
|
70
70
|
|
71
|
-
質問者のコードは内側の i を定義しただけで値をセットしていません。**不定値**です。値が無いのではありませんよ、値が不定なだけ。だってメモリには何かの値があるのだから。割り当てられたメモリに残っていた値が表示されたので
|
71
|
+
質問者のコードは内側の i を定義しただけで値をセットしていません。**不定値**です。値が無いのではありませんよ、値が不定なだけ。だってメモリには何かの値があるのだから。割り当てられたメモリに残っていた値が表示されたのです。私的には不思議な表示ですが、文字化けのようなものかな。
|