Pointer
Pointer๋ ๋ณ์์ ๋๋ค.
๋ณ์์ ๊ตฌ์ฑ ์์๋ ๋ฉ๋ชจ๋ฆฌ์ ์์น, ๋ณ์ ํ์ , ๊ทธ๋ฆฌ๊ณ ๊ฐ์ ๊ฐ์ง๋๋ค.
ํฌ์ธํฐ๋ ๋ค๋ฅธ ๋ณ์๋ ํจ์์ ์ฃผ์๋ฅผ ์ ์ฅํ๋ ๋ณ์์ ๋๋ค.
์ด๊ฒ ๋ฌด์จ ๋ป์ด๋๋ฉด, ๋ณ์์ '๊ฐ' ์ ํด๋นํ๋ ๋ถ๋ถ์ด ๋ค๋ฅธ ๋์์ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ผ๋ ๊ฒ ์ ๋๋ค.
์๋ฅผ ๋ค์ด int x {10}; ์ผ๋ก ์ ์ ๋ณ์ x๋ฅผ ์ ์ธํ๊ณ 10์ ํ ๋นํ๋ค๋ฉด,
๋ณ์ x๋ฅผ ๊ฐ๋ฅดํค๋ ๋ค๋ฅธ ํฌ์ธํฐ๋ฅผ ์ ์ธํ ์ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด, ํฌ์ธํฐ๋ ์ ์ฌ์ฉํ ๊น์?
ํฌ์ธํฐ๊ฐ ์ด๋ฏธ ์กด์ฌํ๋ ๋ณ์๋ฅผ ๊ฐ๋ฅดํค๋ ๋ณ์๋ผ๋ฉด, ๊ทธ๋ฅ ์๋์ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋๊ฑฐ ์๋๊น์?
ํฌ์ธํฐ ์ฌ์ฉ์ ์ด์
์์ ์ง๋ฌธ์ ์ด์ด์ ์ด์ ๋ฅผ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
๋ง์ต๋๋ค. ์๋์ ๋ณ์๋ฅผ ์ง์ ์ฌ์ฉํ๋ฉด ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
ํ์ง๋ง, ์ฐ๋ฆฌ๋ ์ข ์ข ํ๋ก๊ทธ๋จ ์์์ ๋ณต์กํ ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ธฐ๋ ํฉ๋๋ค.
์๋ฅผ ๋ค๋ฉด, ํน์ ํจ์ ์ธ๋ถ์์ ์ ์ธ๋ ๋ณ์์ ๋ํด์ ํด๋น ํจ์ ๋ด์์ ์ ๊ทผํ๊ณ ์ถ์ ๊ฒฝ์ฐ๊ฐ ์๊น๋๋ค.
๊ทธ๊ฑด ๋ถ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ ํจ์ ๋ธ๋ญ์ Scope ์ธ๋ถ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋ด ๋ ์ฐ๋ฆฌ๋ 'pass by reference' ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ฑฐ๋, ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃน๋๋ค.
๋, ๋ฐฐ์ด์ ๋ค๋ฃฐ ๋์๋ ํฌ์ธํฐ๋ ๋งค์ฐ ํจ์จ์ ์ผ๋ก ์์ฉํฉ๋๋ค.
Runtime ์์์ ๋์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ค๋๋ค.
๊ทธ ๋ฉ๋ชจ๋ฆฌ ์์น๋ค์๋ ์ด๋ฆ์ด ์๊ธฐ ๋๋ฌธ์ ํฌ์ธํฐ๋ก๋ง ์ ๊ทผํ ์ ์์ต๋๋ค.
๋ฉ๋ชจ๋ฆฌ ๋ด๋ถ์ ํน์ ํ ์์น์ ์ ๊ทผํ๊ธฐ์ ์ ์ฉํ๋ค๊ณ ์๊ฐํ๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
'C++ > ํฌ์ธํฐ (Pointers)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++] ๋ฐฐ์ด๊ณผ ํฌ์ธํฐ์ ๊ด๊ณ (Relationship Between Arrays and Pointers) (1) | 2023.12.19 |
---|---|
[C++] ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น (Dynamic Memory Allocation) (1) | 2023.12.19 |
[C++] ์ญ์ฐธ์กฐ (Dereferencing a Pointer) (0) | 2023.12.19 |
[C++] ๋ฐ์ดํฐ์ ์ฃผ์์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ (1) | 2023.12.19 |
[C++] ํฌ์ธํฐ์ ์ ์ธ (Declaring Pointers) (0) | 2023.12.19 |