์ฐธ์กฐํ ๋ณ์ (Reference variable)
- ์ฐธ์กฐํ ๋ณ์๋ reference์ value๊ฐ ๊ฐ์ ์ทจ๊ธ์ด๋ค.
- ์ฐธ์กฐํ๋ณ์๋ ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํํด์ผํ๋ค.
- ์ด๊ธฐํ ๋ ํ์๋ ๋ค๋ฅธ ๋ณ์๋ฅผ ์ฐธ์กฐํ๋๋ก ๋ณ๊ฒฝํ ์ ์๋ค.
- ์ฐธ์กฐํ ๋ณ์๋ l-value(์์ ํ ์ ์๋ ๊ฐ)๋ฅผ ๊ฐ๋ฆฌ์ผ์ผํ๋ค.
- ์ฐธ์กฐํ ๋ณ์๋ NULL๋ก ์ด๊ธฐํ ํ ์ ์๋ค.
int &ref = value1; // (O)
ref = value2; // (X)
์ฐธ์กฐํ vs ํฌ์ธํฐ
- ์์์ ref == value๋ผ๊ณ ๋งํ๋ค์ํผ ์ฐธ์กฐํ์ ์ ๊ทผํ ๋ ์์์ ์ผ๋ก ์ญ์ฐธ์กฐ๋๋ ํฌ์ธํฐ์ ๊ฐ์ ์ญํ ์ ํ๋ค.
- ํฌ์ธํฐ์ ๋น๊ตํด๋ณด์์ ๋ ์๋ ์ฝ๋์์ *ptr๊ณผ ref๋ ๋์ผํ๊ฒ ํ๊ฐ๋๋ค. (ptr์ &ref์ ๋์ผํ๊ฒ ํ๊ฐ)
- ์ฐธ์กฐํ์ ์ ์ธ๊ณผ ๋์์ ์ ํจํ ๊ฐ์ฒด๋ก ์ด๊ธฐํํด์ผํ๊ณ , ์ผ๋จ ์ด๊ธฐํ๋๋ฉด ๋ณ๊ฒฝํ ์ ์์ผ๋ฏ๋ก ํฌ์ธํฐ๋ณด๋ค ์์ ํ๋ค.