ํฌ์ธํฐ(3)
-
13. [C / C++] const์ ํฌ์ธํฐ
ํฌ์ธํฐ ๋์์ const ์ ์ธ const๋ ๋ณ์๋ฅผ ์์ํ ํ๋ ๋ชฉ์ ์ผ๋ก ์ ์ธํ๋ ํค์๋์ด๋ค. ( ์์ : ๋ณํ์ง ์๋ ๋ณ์. ) ์ฆ, ํ๋ก๊ทธ๋๋จธ๊ฐ ๊ฐ ๋ณ๊ฒฝ์ ํ์ง ๋ชปํ๋๋ก ๋ง๋ ํค์๋์ด๋ค. 1. ํฌ์ธํฐ ๋ณ์๊ฐ ์ฐธ์กฐํ๋ ๋์์ ๊ฐ ๋ณ๊ฒฝ์ ํ์ฉํ์ง ์๋ const ์ ์ธ ์ฒซ ๋ฒ์งธ const ํค์๋์ ์์น์ ๋ด๊ธด ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ๋ค. "ํฌ์ธํฐ ๋ณ์ pPtr1์ ์ด์ฉํด์, pPtr1์ด ๊ฐ๋ฆฌํค๋ ๋ณ์์ ์ ์ฅ๋ ๊ฐ์ ๋ณ๊ฒฝ์ ํ์ฉํ์ง ์๊ฒ ๋ค." ๊ทธ๋ ๋ค๊ณ ํด์ ํฌ์ธํฐ ๋ณ์ pPtr1์ด ๊ฐ๋ฆฌํค๋ ๋ณ์ iA๊ฐ ์์ํ ๋๋ ๊ฒ์ ์๋๋ค. ๋ฐ๋ผ์ iA์ ์ ์ฅ๋ ๊ฐ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ํ์ฉ๋๋ค. ์ฆ, ํฌ์ธํฐ ๋ณ์๋ฅผ ํตํด์ ๊ฐ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋ง๋ ์๋ฏธ์ด๋ค. ์์ const ์ ์ธ์ ๊ฐ์ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ ์ ํ์ ๋๋ ๊ฒ์ด์ง ๋ฌด์์ธ๊ฐ๋ฅผ ..
2019.05.26 -
12. [C / C++] ํฌ์ธํฐ์ ๋ ํผ๋ฐ์ค์ ์ฐจ์ด
1. ํฌ์ธํฐ (pointer) ํฌ์ธํฐ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋ณ์์ด๋ค. ์ฃผ์ ๊ฐ์ ํตํ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ํ๋ค. (๊ฐ์ ์ฐธ์กฐ) 2. ๋ ํผ๋ฐ์ค (reference) ๋ ํผ๋ฐ์ค = ์ฐธ์กฐ์. ( C++ ๋ฌธ๋ฒ ) ์ฐธ์กฐ์๋ ์์ ์ด ์ฐธ์กฐํ๋ ๋ณ์๋ฅผ ๋์ ํ ์ ์๋ ๋ ํ๋์ ์ด๋ฆ์ด๋ค. ์ฆ, ๋ณ์์ ๋ณ๋ช (๋ณ์นญ)์ ํ๋ ๋ถ์ฌ์ฃผ๋ ๊ฒ์ด๋ค. ๋ณ์ ๋ช ์ ํตํด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐธ์กฐํ๋ค. ( ์ง์ ์ฐธ์กฐ ) iNum์ด ๋ณ์์ ์ด๋ฆ์ด๋ฉด, rRef๋ iNum1์ ๋ณ๋ช (๋ณ์นญ)์ด๋ผ๋ ๋ป์ด๋ค. iNum๊ณผ rRef๋ ๋์ผํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฐธ์กฐํ๋ค. 3. ํฌ์ธํฐ์ ๋ ํผ๋ฐ์ค์ ์ฐจ์ด 1. NULL ์ด๊ธฐํ ํฌ์ธํฐ๋ NULL ์ด๊ธฐํ๋ฅผ ํ ์ ์์ง๋ง, ๋ ํผ๋ฐ์ค๋ NULL ์ด๊ธฐํ๋ฅผ ํ ์ ์๋ค. ๋ ํผ๋ฐ์ค๋ ๋ฐ๋์ ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ๋ฅผ ํด์ผํ๋ค. ์ด๋ฌํ ..
2019.05.25 -
6. [C์ธ์ด] ํฌ์ธํฐ ์ดํดํ๊ธฐ
์ฌ๋๋ค์ด C์ธ์ด๋ฅผ ์ฒ์ ๋ฐฐ์ธ ๋ ๊ฐ์ฅ ํ๋ค์ดํ๋ ๋ถ๋ถ์ด ํฌ์ธํฐ์ ๋๋ค. ํฌ์ธํฐ ์์ฒด๊ฐ ์ด๋ ค์ด ๊ฐ๋ ์ ์๋์ง๋ง, ํฌ์ธํฐ์ ๋ฐฐ์ด, ํจ์ ๋ฑ์ ๊ด๊ณ๋ฅผ ํ์ ํ๋๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๋ฒ ํฌ์คํ ์ ํฌ์ธํฐ๊ฐ ๋ฌด์์ธ์ง, ์ ํฌ์ธํฐ๊ฐ ์ค์ํ๊ณ ์ฌ์ฉํ๋์ง์ ๋ํด์ ๋ค๋ฃจ์ด๋ณด๊ฒ ์ต๋๋ค. 1. ํฌ์ธํฐ๋ ๋ฌด์์ธ๊ฐ? ํฌ์ธํฐ๋ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ฐ์ดํฐ์ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋ณ์์ ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ ์ธํ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ ์ฃผ์ ๊ฐ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ณ์ ์์ &(์ด๋๋ ์ค)๋ฅผ ๋ถ์ฌ์ฃผ๋ฉด ์ฃผ์ ๊ฐ์ ํ์ธํ ์ ์์ต๋๋ค. ์ด ์ฃผ์ ๊ฐ์ ๊ณ ์ ๋ ๊ฐ์ด ์๋๋ผ, ์ปดํ์ผ์ ํ ๋๋ง๋ค ๋ค๋ฅธ ๊ฐ์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค. ์ฆ, ํ๋ก๊ทธ๋จ์์ ๋ณ์๋ฅผ ๋ง๋ค๋ฉด ์ด๋ค ๋ณ์๋ ์ปดํ์ผ๋ฌ์ ์ํ์ฌ ๋น์ด์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์์น๋ฅผ ์ฐจ์งํ๊ฒ ๋ฉ๋๋ค. ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ์๋ ์์น ์๋ณํ..
2019.05.15