回答編集履歴
4
文言修正
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
`%c`に対してint型変数のアドレスを渡しています。
|
2
2
|
|
3
|
-
そのため、num[0]の下位1バイト(char一文字分)のみ値が格納され、上位3バイトは不定値となります。
|
3
|
+
そのため、num[0]の下位1バイト(char一文字分)のみ値が格納され、上位3バイトは(numを0クリアしていないので)不定値となります。
|
4
4
|
|
5
5
|
scanfの後に
|
6
6
|
|
3
不要な`\`指摘
test
CHANGED
@@ -17,3 +17,23 @@
|
|
17
17
|
`int num[3] = {0};`として0クリアしておけば一応動きます。
|
18
18
|
|
19
19
|
ビッグエンディアンの環境ではだめでしょうけれど…
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
---
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
不要な`\`がついています。
|
28
|
+
|
29
|
+
```diff
|
30
|
+
|
31
|
+
-printf("\抜き取りました!%d",num[1]);
|
32
|
+
|
33
|
+
+printf("抜き取りました!%d",num[1]);
|
34
|
+
|
35
|
+
-printf("\数字だけ");
|
36
|
+
|
37
|
+
+printf("数字だけ");
|
38
|
+
|
39
|
+
```
|
2
コード追記
test
CHANGED
@@ -7,3 +7,13 @@
|
|
7
7
|
`printf("num[0]:%x 'm':%x\n", num[0], 'm');`
|
8
8
|
|
9
9
|
を追加すると確認できます。
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
---
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
`int num[3] = {0};`として0クリアしておけば一応動きます。
|
18
|
+
|
19
|
+
ビッグエンディアンの環境ではだめでしょうけれど…
|
1
1バイトの理由を追記
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
`%c`に対してint型変数のアドレスを渡しています。
|
2
2
|
|
3
|
-
そのため、num[0]の下位1バイトのみ値が格納され、上位3バイトは不定値となります。
|
3
|
+
そのため、num[0]の下位1バイト(char一文字分)のみ値が格納され、上位3バイトは不定値となります。
|
4
4
|
|
5
5
|
scanfの後に
|
6
6
|
|