์ฐธ์กฐ

C++์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋Ÿฌ์ŠคํŠธ๋„ ์ฐธ์กฐํ˜•์„ ๊ฐ–์Šต๋‹ˆ๋‹ค:

fn main() {
    let mut x: i32 = 10;
    let ref_x: &mut i32 = &mut x;
    *ref_x = 20;
    println!("x: {x}");
}

์ฐธ๊ณ ์‚ฌํ•ญ:

  • ref_x์— ๊ฐ’์„ ํ• ๋‹นํ•  ๋•Œ, C/C++์˜ ํฌ์ธํ„ฐ์™€ ์œ ์‚ฌํ•˜๊ฒŒ *๋ฅผ ์ด์šฉํ•ด์„œ ์ฐธ์กฐ๋ฅผ ๋”ฐ๋ผ๊ฐ€์•ผ(์—ญ์ฐธ์กฐ) ํ•ฉ๋‹ˆ๋‹ค.
  • ๋Ÿฌ์ŠคํŠธ๋Š” ํŠน์ •ํ•œ ๊ฒฝ์šฐ(๋ฉ”์„œ๋“œ ํ˜ธ์ถœ)์— ์ž๋™์œผ๋กœ ์—ญ์ฐธ์กฐ๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.(ref_x.count_one()์„ ํ•˜๋ฉด *ref_x๊ฐ€ count_one์˜ ์ธ์ž๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.)
  • mut๋กœ ์„ ์–ธ๋œ ์ฐธ์กฐ๋Š” ๊ทธ ๋ณ€์ˆ˜๊ฐ€ ์‚ด์•„์žˆ๋Š” ๋™์•ˆ ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ‚ค ํฌ์ธํŠธ:

  • let mut ref_x: &i32์™€ let ref_x: &mut i32์˜ ์ฐจ์ด์ ์— ์ฃผ์˜ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ฒซ๋ฒˆ์งธ ๊ฐ’์€ ๋‹ค๋ฅธ ๊ฐ’์— ๋ฐ”์ธ๋”ฉ ๋  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋ณ€ ์ฐธ์กฐ์ด๊ณ , ๋‘๋ฒˆ์งธ ๊ฐ’์€ ๊ฐ€๋ณ€ ๊ฐ’์— ๋Œ€ํ•œ ์ฐธ์กฐ์ž…๋‹ˆ๋‹ค.