回答編集履歴
3
サンプルプログラムのbの型をu8からu32に変更しました
test
CHANGED
@@ -20,9 +20,9 @@
|
|
20
20
|
|
21
21
|
|
22
22
|
|
23
|
-
let b = 12u
|
23
|
+
let b = 12u32; // u32型
|
24
24
|
|
25
|
-
let b_ref = &b; // &u
|
25
|
+
let b_ref = &b; // &u32型
|
26
26
|
|
27
27
|
|
28
28
|
|
@@ -58,9 +58,9 @@
|
|
58
58
|
|
59
59
|
println!(
|
60
60
|
|
61
|
-
"b: u
|
61
|
+
"b: u32 {} {:p} {:?}",
|
62
62
|
|
63
|
-
size_of::<u
|
63
|
+
size_of::<u32>(),
|
64
64
|
|
65
65
|
&b,
|
66
66
|
|
@@ -70,9 +70,9 @@
|
|
70
70
|
|
71
71
|
println!(
|
72
72
|
|
73
|
-
"b_ref: &u
|
73
|
+
"b_ref: &u32 {} {:p} 0x{:x}",
|
74
74
|
|
75
|
-
size_of::<&u
|
75
|
+
size_of::<&u32>(),
|
76
76
|
|
77
77
|
&b_ref,
|
78
78
|
|
@@ -116,13 +116,13 @@
|
|
116
116
|
|
117
117
|
--------------- ---- -------------- ---------------
|
118
118
|
|
119
|
-
a: [u8; 4] 4 0x7ffeed
|
119
|
+
a: [u8; 4] 4 0x7ffeedd64b88 [34, 1, 0, 0]
|
120
120
|
|
121
|
-
a_ref: &[u8; 4] 8 0x7ffeed
|
121
|
+
a_ref: &[u8; 4] 8 0x7ffeedd64b98 0x7ffeedd64b88
|
122
122
|
|
123
|
-
b: u
|
123
|
+
b: u32 4 0x7ffeedd64ba4 12
|
124
124
|
|
125
|
-
b_ref: &u
|
125
|
+
b_ref: &u32 8 0x7ffeedd64ba8 0x7ffeedd64ba4
|
126
126
|
|
127
127
|
```
|
128
128
|
|
2
誤字を修正しました
test
CHANGED
@@ -128,4 +128,4 @@
|
|
128
128
|
|
129
129
|
|
130
130
|
|
131
|
-
参照`a_ref`はそのサイズは8バイト(64ビット)で、値として
|
131
|
+
参照`a_ref`はそのサイズは8バイト(64ビット)で、値として`a`が置かれているアドレスを持っていることが確認できます。
|
1
説明を少し追加しました
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
参照(`&`)はポインタの一種で、その値は、それが指しているデータのメモリ上のアドレス
|
1
|
+
参照(`&`)はポインタの一種で、その値は、それが指しているデータのメモリ上のアドレスです。アドレスは64ビットOSでは8バイトですので、参照の値のサイズも8バイトになります。
|
2
2
|
|
3
3
|
|
4
4
|
|