13. [C / C++] const์™€ ํฌ์ธํ„ฐ

2019. 5. 26. 00:30ใ†PROGRAMMING/C & C++

 

ํฌ์ธํ„ฐ ๋Œ€์ƒ์˜ const ์„ ์–ธ

 

 

const๋Š” ๋ณ€์ˆ˜๋ฅผ ์ƒ์ˆ˜ํ™” ํ•˜๋Š” ๋ชฉ์ ์œผ๋กœ ์„ ์–ธํ•˜๋Š” ํ‚ค์›Œ๋“œ์ด๋‹ค.

( ์ƒ์ˆ˜ : ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๋ณ€์ˆ˜. )

์ฆ‰, ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๊ฐ’ ๋ณ€๊ฒฝ์„ ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ๋ง‰๋Š” ํ‚ค์›Œ๋“œ์ด๋‹ค.

 

 

 

1. ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๋Œ€์ƒ์˜ ๊ฐ’ ๋ณ€๊ฒฝ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” const ์„ ์–ธ

 

์ฒซ ๋ฒˆ์งธ const ํ‚ค์›Œ๋“œ์˜ ์œ„์น˜์— ๋‹ด๊ธด ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

"ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ pPtr1์„ ์ด์šฉํ•ด์„œ, pPtr1์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๊ฐ’์˜ ๋ณ€๊ฒฝ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ฒ ๋‹ค."

 

๊ทธ๋ ‡๋‹ค๊ณ  ํ•ด์„œ

ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ pPtr1์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ณ€์ˆ˜ iA๊ฐ€ ์ƒ์ˆ˜ํ™” ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ iA์— ์ €์žฅ๋œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ ํ—ˆ์šฉ๋œ๋‹ค.

์ฆ‰, ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š” ์˜๋ฏธ์ด๋‹ค.

 

์œ„์˜ const ์„ ์–ธ์€ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์— ์ œํ•œ์„ ๋‘๋Š” ๊ฒƒ์ด์ง€

๋ฌด์—‡์ธ๊ฐ€๋ฅผ ์ƒ์ˆ˜๋กœ ๋งŒ๋“œ๋Š” ์„ ์–ธ์€ ์•„๋‹ˆ๋‹ค.

 

 

2. ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์˜ ์ƒ์ˆ˜ํ™”

 

 

๋‘ ๋ฒˆ์งธ const ํ‚ค์›Œ๋“œ์˜ ์œ„์น˜์— ๋‹ด๊ธด ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

"ํ•œ ๋ฒˆ ์ฃผ์†Œ ๊ฐ’์ด ์ €์žฅ๋˜๋ฉด, ๊ทธ ๊ฐ’์˜ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅ ํ•˜๋‹ค."

 

pPtr2๋Š” ์•ž์˜ const ์„ ์–ธ์œผ๋กœ ์ธํ•ด ์ƒ์ˆ˜ํ™”๊ฐ€ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์—,

๊ฐ€๋ฆฌํ‚ค๋Š” ๋Œ€์ƒ์„ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰์‹œ ์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

pPtr2๊ฐ€ ์ƒ์ˆ˜์ผ ๋ฟ์ด๋‹ˆ,

pPtr2๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋Œ€์ƒ์— ์ €์žฅ๋œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ์—ฐ์‚ฐ์€ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค.

 

 

 

3. ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๋Œ€์ƒ์˜ ๊ฐ’ ๋ณ€๊ฒฝ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ณ ,

์ฐธ์กฐ ๋Œ€์ƒ์˜ ๋ณ€๊ฒฝ๋„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” const์„ ์–ธ

 

 

์ฒซ ๋ฒˆ์งธ์™€ ๋‘ ๋ฒˆ์งธ ์˜๋ฏธ๊ฐ€ ๋ชจ๋‘ ํ•ฉ์ณ์ง„ ๊ฒฝ์šฐ๋กœ

ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด์„œ, ์ฃผ์†Œ ๊ฐ’์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ๋Œ€์ƒ์˜ ๊ฐ’์˜ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ ,

๊ฐ€๋ฆฌํ‚ค๋Š” ๋Œ€์ƒ์˜ ์ฃผ์†Œ ๊ฐ’ ๋˜ํ•œ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.