&はreference、*はdereference
この時
code:c
int x = 10;
int p = &x;
https://gyazo.com/a4394cf53e5abb51b549aa4df48c5259
GPT-4.icon
code:rust
fn main() {
let x = 10;
let y = &x; // xのreference
println!("{}", *y); // yをdereferenceしてxの値を取得
}
*yは、参照yを「解除」してxの値を得ています。
table:まとめ
記号 役割 例
&T イミュータブル参照の作成 let y = &x;
&mut T ミュータブル参照の作成 let y = &mut x;
*T デリファレンス(参照の解除) *y
*const T, *mut T 生ポインタ (rs) let ptr: *const i32 = &x;