๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํฌ์ธํ„ฐ3

[C++] 14. ์ฐธ์กฐ์ž(Reference) โœ… ์ฐธ์กฐ์ž(Reference) ์ฐธ์กฐ์ž๋Š” ํฌ์ธํ„ฐ์™€ ์ƒ๋‹นํžˆ ์œ ์‚ฌํ•œ ๊ฐœ๋…์ด๋‹ค. C์—์„œ๋Š” ํฌ์ธํ„ฐ๋งŒ ์žˆ์—ˆ์ง€๋งŒ C++์—์„œ๋Š” ์ฐธ์กฐ์ž(Reference)๋ผ๋Š” ๊ฐœ๋…์ด ๋„์ž…๋˜๋ฉด์„œ ์ข€ ๋” ํŽธํ•˜๊ฒŒ ์ฃผ์†Œ๊ฐ’์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ์‚ฌ์‹ค C++์—์„œ๋„ ํฌ์ธํ„ฐ์— ์˜์กดํ•˜๊ณ  ์‹ถ์ง€ ์•Š์•˜๊ณ  *๊ณผ ->๋ฅผ ์ค„์ด๊ณ  ์‹ถ์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•˜๊ณ  ๋ณ€์ˆ˜๋ผ๋Š” ๊ฒƒ์œผ๋กœ ์ด๋ฆ„์„ ์ง€์–ด์ค€๋‹ค. ์ฐธ์กฐ์ž๋Š” ์ด ์ด๋ฆ„์— ๋ณ„๋ช…์„ ๋ถ™์—ฌ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด '๊ทผํ˜ธ'์˜ ๋ณ„๋ช…์ด '๊ทผ๋˜๋ฆฌ'๋ผ๊ณ  ํ–ˆ์„ ๋•Œ '๊ทผํ˜ธ'์—๊ฒŒ ๊ณผ์ž๋ฅผ ์ฃผ๋Š” ๊ฒƒ๊ณผ '๊ทผ๋˜๋ฆฌ'์—๊ฒŒ ๊ณผ์ž๋ฅผ ์ฃผ๋Š” ๊ฒƒ์€ ๋™์ผํ•˜๋‹ค. ๊ฒฐ๊ตญ, ์ฐธ์กฐ์ž๋Š” ๋˜ ๋‹ค๋ฅธ ์ด๋ฆ„์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. #include using namespace std; int main() { int var = 10; int &ref .. 2023. 6. 2.
[C/C++] 10. ํฌ์ธํ„ฐ(feat. ์Šค๋งˆํŠธ ํฌ์ธํ„ฐ) โœ… ํฌ์ธํ„ฐ C++์˜ ์žฅ์ ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง์ ‘์ ์œผ๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋งŽ์€ ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋Š” ๋‹จ์ ์œผ๋กœ ๋Š๊ปด์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋ˆˆ์œผ๋กœ ํ›คํžˆ ํ™•์ธํ•ด ๋ณผ ์ˆ˜ ์—†๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž˜๋ชป ๊ด€๋ฆฌํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ์ฃฝ์–ด๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ง์ ‘ ์ œ์–ดํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ์ˆ˜๋„ ์žˆ๊ณ  ์•„๋‹ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ํ™•์‹คํ•œ ๊ฑด C/C++์€ ์ปดํ“จํ„ฐ์˜ ๋ฉ”์ธ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š”์ง€ ์•Œ๊ธฐ์—๋Š” ์ ํ•ฉํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ํฌ์ธํ„ฐ๋Š” ์ฃผ์†Œ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๋ณ€์ˆ˜์ด๋‹ค. 64๋น„ํŠธ ์ฒด์ œ์—์„œ integer ํƒ€์ž…์˜ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋Š” ๋ช‡์ธ๊ฐ€๋ฅผ ๋ฌป๋Š” ์งˆ๋ฌธ์— ๋งŽ์€ ๋ถ„๋“ค์ด 4byte๋ผ๊ณ  ๋Œ€๋‹ตํ•œ๋‹ค. ํฌ์ธํ„ฐ๋ณ€์ˆ˜๋Š” ์ฃผ์†Œ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํฌ์ธํ„ฐ๋ณ€์ˆ˜๋Š” ์ปดํ“จํ„ฐ์˜ ์›Œ๋“œ(word)์™€ ๊ฐ™๋‹ค. 8๋น„ํŠธ ์ฒด์ œ์—์„œ๋Š” 1 ์›Œ๋“œ๊ฐ€ 8๋น„ํŠธ=1๋ฐ”์ดํŠธ์ด๋‹ค. ๋”ฐ๋ผ์„œ 64๋น„ํŠธ ์ฒด์ œ์—์„œ๋Š” ํƒ€์ž…์ด ๋ฌด์—‡์ด๊ฑด ๊ฐ„์— ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์˜ ํฌ๊ธฐ๋Š” 64.. 2023. 4. 26.
[C++]ํฌ์ธํ„ฐ์™€ ๋ ˆํผ๋Ÿฐ์Šค ์ฐจ์ด C++์—์„œ ํฌ์ธํ„ฐ์™€ ๋ ˆํผ๋Ÿฐ์Šค๋Š” ๋ชจ๋‘ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฑฐ๋‚˜ ์ฐธ์กฐํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜์ง€๋งŒ, ๊ทธ๋“ค ๊ฐ„์— ์ค‘์š”ํ•œ ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ •์˜ - ํฌ์ธํ„ฐ(Pointer): ํฌ์ธํ„ฐ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๊ณ  ํ•ด๋‹น ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๊ฐ„์ ‘ ์ฐธ์กฐ๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํฌ์ธํ„ฐ๋Š” '*' ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ ์–ธํ•˜๋ฉฐ, ํ• ๋‹น๋œ ์ฃผ์†Œ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ๋ ˆํผ๋Ÿฐ์Šค(Reference): ๋ ˆํผ๋Ÿฐ์Šค๋Š” ๊ธฐ์กด ๋ณ€์ˆ˜์˜ ๋ณ„์นญ(alias)์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๊ธฐ์กด ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๋ณ„์นญ์„ ๋งŒ๋“ค์–ด ํ•ด๋‹น ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋ ˆํผ๋Ÿฐ์Šค๋Š” '&' ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ ์–ธ๋˜๋ฉฐ, ํ•œ ๋ฒˆ ํ• ๋‹น๋˜๋ฉด ๋‹ค๋ฅธ ๋ณ€์ˆ˜๋กœ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธฐํ™” - ํฌ์ธํ„ฐ(Pointer): ํฌ์ธํ„ฐ๋Š” ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋„ ํฌ์ธํ„ฐ๋กœ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค... 2023. 1. 9.