๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜์ž๋ฉด ๊ฐ’ํƒ€์ž…์ด๋ผ๊ณ  ๋ฌด์กฐ๊ฑด ์Šคํƒ์— ์กด์žฌํ•˜๋Š”๊ฒŒ ์•„๋‹™๋‹ˆ๋‹ค


์šฐ์„  ์ด ๊ธ€์€ ๋ฌธ์„œ์™€ ์‹ค์ œ ์ฝ”๋“œ๋กœ ์ฆ๋ช…ํ•˜๋Š”๊ฒŒ ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค


1. ์Šคํƒ์— ์กด์žฌํ•˜๋ ค๋ฉด ํ•จ์ˆ˜์•ˆ์— ์žˆ์–ด์•ผ๋œ๋‹ค.


๋ง์ด ์ข€ ์ถ”์ƒ์ ์ด์ง€๋งŒ ์˜๋ฏธ๋Š” ์•„๋ž˜ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ๋ณด์ž

์šฐ๋ฆฌ๊ฐ€ ๋ณผ๊ฑด ํ•จ์ˆ˜์•ˆ์ด๋‹ค ๋ฉ”์ธํ•จ์ˆ˜์—์„œ ๋‘ a๋ณ€์ˆ˜์— 10์„ ๋„ฃ๋Š”๋‹ค ์ด๋•Œ ๋‘ a๋ณ€์ˆ˜๋Š” ์ •๋ง๋กœ ์Šคํƒ์— ์กด์žฌํ• ๊นŒ?ย 



์ฆ๋ช…1


์ฆ๋ช…์„ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ข€ ์ˆ˜์ •ํ•˜๊ฒ ๋‹ค


C.a๋ฅผ ์ŠคํŒฌ์œผ๋กœ ํ–ˆ๋‹ค(์ŠคํŒฌ์€ ref struct๋กœ ์˜ค์ง ์Šคํƒ์—๋งŒ ์žˆ์„์ˆ˜์žˆ๋‹ค)


๊ทธ๋Ÿฌ์ž ์—๋Ÿฌ๊ฐ€ ๋œฌ๋‹ค. ๋ฌผ๋ก  ์™„๋ฒฝํ•œ ์ฆ๋ช…์€ ์•„๋‹ˆ๋‹ค ๊ทธ์ ธ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ง‰ํž๋ฟ์ด๋‹ค


์ฆ๋ช…2


์ค‘๋‹จ์ ์„ ์ฐ๊ณ  ๋””์Šค์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ์—ฐ๋‹ค


๊ทธ๋ฆฌ๊ณ  ์ฝœ์Šคํƒ์„ ์ถ”์ ํ•ด๋ณด์ž


์ผ๋‹จ ๋‘ ์ฐจ์ด ์ ์€ ๋ช…๋ น์–ด ํ•˜๋‚˜ ์ฐจ์ด๋‹ค ํ•˜์ง€๋งŒ ์ด ์ฐจ์ด๋Š” ์ข€ ํฌ๋‹ค


๋จผ์ € c.a=10์„ ๋ณด์ž๋ฉดย 


์Šคํƒ์—์„œ ํฌ์ธํ„ฐ(์šฐ๋ฆฌ๊ฐ€ ์ƒ์„ฑํ•œ c์— ํฌ์ธํ„ฐ) ๊ฐ€์ ธ์˜จ๋‹ค ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค


์ž์„ธํ•œ ์„ค๋ช…:

์Šคํƒ์—์„œ ์˜คํ”„์…‹(์Šคํƒํ”„๋ ˆ์ž„, ์ง€์—ญ๋ณ€์ˆ˜ ๋“ฑ๋“ฑ)์„ ๋”ํ•œ ๊ฐ’(ํฌ์ธํ„ฐ)๋ฅผ ๋ ˆ์ง€์Šคํ„ฐ์— ๋„ฃ์Šต๋‹ˆ๋‹ค

๊ทธ ํฌ์ธํ„ฐ๋กœ ์ ‘๊ทผํ•ด์„œ a๋ณ€์ˆ˜์— 10์„ ๋„ฃ์Šต๋‹ˆ๋‹ค(์—ฌ๊ธฐ์„  16์ง„์ˆ˜์ž…๋‹ˆ๋‹ค)


์ž์„ธํ•œ ์„ค๋ช…:

๋ ˆ์ง€์Šคํ„ฐ์— ์žˆ๋Š” ํฌ์ธํ„ฐ์— ์˜คํ”„์…‹(ํด๋ž˜์Šค ํ—ค๋”, ๋ฉค๋ฒ„๋ณ€์ˆ˜ ๋“ฑ๋“ฑ)์„ ๋”ํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ‘๊ทผํ•ด์„œ(์ ‘๊ทผํ•œ ๋ฉ”๋ชจ๋ฆฌ๋Š” c๋ชธ์ฒด) a๋ณ€์ˆ˜์— 10์„ ๋„ฃ๋Š”๋‹ค


๊ทธ ๋‹ค์Œ์€ c=10์ž…๋‹ˆ๋‹ค


์Šคํƒ์—(a์—) 10์„ ๋„ฃ์Šต๋‹ˆ๋‹ค


์ž์„ธํ•œ ์„ค๋ช…:

์Šคํƒ์—์„œ ์˜คํ”„์…‹(์Šคํƒํ”„๋ ˆ์ž„, ์ง€์—ญ๋ณ€์ˆ˜ ๋“ฑ๋“ฑ)์„ ๋”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์— 10์„ ๋„ฃ์Šต๋‹ˆ๋‹ค


์š”์•ฝ

c.a=10์€ ํž™์— ์žˆ๋Š” c์— a๋ฅผ ๊ฐ€์ ธ์™€ 10์„ ๋„ฃ๋Š”๋‹ค ์ฆ‰ a๋Š” ํž™์— ์กด์žฌํ•œ๋‹ค

a=10์€ ์Šคํƒ์— 10์„ ๋„ฃ๋Š”๋‹ค


2. ๋ฐฐ์—ด


์ด ๊ธ€์„ ์“ด ์ด์œ ๋‹คย 


์šฐ์„  ๋ชจ๋ฅด์‹œ๋Š”๋ถ„๋“ค์ด ์žˆ์„์ˆ˜์žˆ๊ธฐ์— ์งค๋ง‰ํ•œ ์ง€์‹๊ณผ ์ฆ๋ช…์„ ๋จผ์ € ํ•˜๊ฒ ๋‹ค


-2.1 C# ๋ฐฐ์—ด์€ ๊ทผ๋ณธ์ ์œผ๋กœ ๋ฌด์—‡์ธ๊ฐ€


c#์—์„œ ๋ฐฐ์—ด์€ int[]์ด๋Ÿฐ์‹์œผ๋กœ ๋˜์žˆ๋Š”๊ฑด ๋‹ค ์•ˆ๋‹ค ๊ทธ๋ฆฌ๊ณ  ์ด๊ฑด array์ถ”์ƒ ํด๋ž˜์Šค์— ์ž์‹์ด๋‹ค ์ฆ‰ array๋ฅผ ์ƒ์†๋ฐ›์€ ๋†ˆ๋“ค์ด๋‹ค ๊ทธ๋ฆฌ๊ณ  list๋Š” ๊ฐ€๋ณ€๋ฐฐ์—ด์ด์ง€๋งŒ ์ง„์งœ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๊ฐ€๋ณ€๋ฐฐ์—ด์ด๋‹ค ์ฆ‰ ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์•„๋‹ˆ๋‹ค ๋•Œ๋ฌธ์— list์•ˆ์— ์ถ”๊ฐ€ํ•˜๊ฒŒ ๋˜๋ฉด ํ˜„์žฌ์žˆ๋Š” ๋ฐฐ์—ด์„ ๋ฒ„๋ฆฌ๊ณ  ์ง€๊ธˆ ํฌ๊ธฐ์— ๋‘๋ฐฐ๋กœ ์žฌํ• ๋‹นํ•œ๋‹ค(๋‘๋ฐฐ๋กœ ํ• ๋‹นํ•˜๋Š” ์ด์œ ๋Š” ๋ฏธ๋ž˜์— ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด) ๋•Œ๋ฌธ์— list์•ˆ ๊ฐฏ์ˆ˜๋ฅผ ์˜ˆ์ธก๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์ƒ์„ฑ์ž์— ์˜ˆ์ธกํ•œ ๊ฐฏ์ˆ˜๋ฅผ ์จ์ฃผ๋ฉด ์ƒ์„ฑํ• ๋•Œ ๊ทธ ๋งŒํผ ํ• ๋‹น๋œ์ฒด ์ƒ์„ฑ๋œ๋‹ค


์ฆ๋ช…


์ด๊ฑด ๊ท€์ฐฎ์ง€ ์•Š๋„๋ก msdn์— ์žˆ์—ˆ๋‹ค ๋‹คํ–‰์ด๋‹ค


์ถœ์ฒ˜ : https://learn.microsoft.com/ko-kr/dotnet/api/system.array?view=net-7.0


-2.2 ๊ฐ’ํƒ€์ž…์— ๋ฐฐ์—ด


์ด ๋˜ํ•œ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ๋ณด๊ฒ ๋‹ค



(์ˆซ์ž๋Š” ๊ทธ๋ƒฅ ์•„๋ฌด๊ฑฐ๋‚˜ ํ–ˆ๋‹ค ์˜๋ฏธx)


๊ทธ๋ƒฅ Cํด๋ž˜์Šค(์ฐธ์กฐํƒ€์ž…)๋ฐฐ์—ด๊ณผ int(๊ฐ’ํƒ€์ž…)๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ  ํ• ๋‹นํ•˜๋Š” ์ฝ”๋“œ์ด๋‹คย 


a๋ฐฐ์—ด ์š”์†Œ๋“ค์€ ํž™์— ์žˆ์„๊นŒ ์Šคํƒ์— ์žˆ์„๊นŒ?


์ฆ๋ช…1


์ฆ๋ช…์„ ์œ„ํ•ด ์ŠคํŒฌ์„ ๋˜ ์จ๋ณด์ž

์ด ์—ญ์‹œ ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค


์ฆ๋ช…2


์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋ฅผ ๋ณด์ž



๋ญ”๊ฐ€ ๊ต‰์žฅํžˆ ๋งŽ๋‹ค ํ•˜์ง€๋งŒ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ณด๋ฉด ๋œ๋‹ค


๋จผ์ € a[0] = 45632;

์Šคํƒ์—์„œ a๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค


์ž์„ธํ•œ ์„ค๋ช…:

์Šคํƒ์—์„œ ์˜คํ”„์…‹(์Šคํƒํ”„๋ ˆ์ž„, ์ง€์—ญ๋ณ€์ˆ˜ ๋“ฑ๋“ฑ)์„ ๋”ํ•œ ๊ฐ’(ํฌ์ธํ„ฐ)๋ฅผ ๋ ˆ์ง€์Šคํ„ฐ์— ๋„ฃ์Šต๋‹ˆ๋‹ค



a[0]์— ์ฃผ์†Œ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค


์ž์„ธํ•œ ์„ค๋ช…:

๋ ˆ์ง€์Šคํ„ฐ์— ์žˆ๋Š” ํฌ์ธํ„ฐ์— ์˜คํ”„์…‹(๋ฐฐ์—ด์ •๋ณด, ์ธ๋ฑ์Šค)์„ ๋”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์— ์ฃผ์†Œ๋ฅผ ๋ ˆ์ง€์Šคํ„ฐ์— ๋„ฃ์Šต๋‹ˆ๋‹ค



a[0]์— 45632๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค


์ž์„ธํ•œ ์„ค๋ช…:

๋ ˆ์ง€์Šคํ„ฐ์— ์žˆ๋Š” ํฌ์ธํ„ฐ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ‘๊ทผํ•ด์„œ a[0]๋ณ€์ˆ˜์— 45632๋ฅผ ๋„ฃ๋Š”๋‹ค


์ง„์งœ ๊ทธ๋Ÿฐ์ง€ ์‹คํ–‰๊ฒฐ๊ณผ๋„ ๋ด…์‹œ๋‹ค


์ฒซ๋ฒˆ์งธ์—์„œ ์ง์ ‘ ๋ ˆ์ง€์Šคํ„ฐ์— ์žˆ๋Š” ๊ฐ’์œผ๋กœ a[0]์ฃผ์†Œ๋กœ ๊ฐ€๋ด…์‹œ๋‹ค


๊นจ๋—ํ•˜๋„ค์š” ์ค‘๊ฐ„์— ๋ฐฐ์—ด ํฌ๊ธฐ๊ฐ€ 10๊ฐœ๋ผ๊ณ  10๋“ค์–ด๊ฐ€์žˆ๋„ค์š”(์—ฌ๊ธฐ์„  16์ง„์ˆ˜๋กœ ๋‚˜์˜ต๋‹ˆ๋‹ค) ์ž˜์ฐพ์•„์˜จ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค


๋‘๋ฒˆ์งธ๋กœ ๊ฐ€๋ณผ๊นŒ์š”

๋‹น์—ฐํžˆ ์•„์ง ๊นจ๋—ํ•ฉ๋‹ˆ๋‹ค


์„ธ๋ฒˆ์งธ๋กœ ๊ฐ€๋ฉดย 

์ด๋Ÿฐ์‹์œผ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค ์ € ๊ฐ’์ด ๋งž๋Š”์ง€ ํ•œ๋ฒˆ ๋ณผ๊นŒ์š”


์ •ํ™•ํ•˜๋„ค์š”(๋ฆฌํ‹€์—”๋””์•ˆ์ž…๋‹ˆ๋‹ค)


๋‹ค์Œ์€ c[0] = new C() { a = 592152 };์ž…๋‹ˆ๋‹ค


Cํด๋ž˜์Šค๋ฅผ ์œ„์—์„œ ์ƒ์„ฑํ–ˆ๊ณ  ๊ทธ๊ฑธ ์Šคํƒ์— ๋„ฃ์Šต๋‹ˆ๋‹ค


์ž์„ธํ•œ ์„ค๋ช…:

ํ•„์š”์—†์Œ


์Šคํƒ์—์„œ ๋งŒ๋“  Cํด๋ž˜์Šค๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค


์ž์„ธํ•œ ์„ค๋ช…:

์Šคํƒํ”„๋ ˆ์ž„ ์˜คํ”„์…‹์œผ๋กœ ์Šคํƒ์—์„œ ๊ฐ€์ ธ์˜จ Cํด๋ž˜์Šค(ํฌ์ธํ„ฐ)๋ฅผ ๋ ˆ์ง€์Šคํ„ฐ์— ๋„ฃ์Šต๋‹ˆ๋‹ค


๊ฐ€์ ธ์˜จ Cํด๋ž˜์Šค์— a๋ณ€์ˆ˜์— 592152๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹ค


์ž์„ธํ•œ ์„ค๋ช…:

๋ ˆ์ง€์Šคํ„ฐ์— ์žˆ๋Š” ํฌ์ธํ„ฐ๋กœ ์ ‘๊ทผํ•˜๊ณ  ์˜คํ”„์…‹์œผ๋กœ a์— ์ ‘๊ทผํ•˜๊ณ  592152๋ฅผ ๋„ฃ์Šต๋‹ˆ๋‹คย ย 


์ด๊ฒƒ๋„ ๋งž๋Š”์ง€ ํ•œ๋ฒˆ ๋ณผ๊นŒ์š” ์ƒ์„ฑ๋œCํด๋ž˜์Šค์— ์ ‘๊ทผํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค


์ฒซ๋ฒˆ์งธย 

๋‘๋ฒˆ์งธ

์„ธ๋ฒˆ์งธ

์ € ๊ฐ’์ด ๋งž๋Š”์ง€ ํ•œ๋ฒˆ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค


์ •ํ™•ํ•˜๋„ค์š”


์š”์•ฝ

๊ฐ’ํƒ€์ž…์œผ๋กœ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด๋„ ๋ฐฐ์—ด์€ ํž™์— ์žˆ๋‹ค