BLCAN'S LAB

๋ฐ˜์‘ํ˜•

๊ฐ’ํ˜•๊ณผ ์ฐธ์กฐํ˜•์€ ์„œ๋กœ ๋‹ค๋ฅธ ํŠน์ง•์„ ๊ฐ–๊ณ  ์žˆ๋‹ค.

๊ฐ’ํ˜•๊ณผ ์ฐธ์กฐํ˜•์˜ ํŠน์ง•์„ ํ’€์–ด ์„ค๋ช…ํ•˜์ž๋ฉด ์›๋ณธ vs ๋ณต์‚ฌ๋ณธ์˜ ์ฐจ์ด์ด๋‹ค.

 

๊ฐ’ํ˜• - ๋ณต์‚ฌ๋ณธ

์ฐธ์กฐํ˜• - ์›๋ณธ

๊ฐ’ํ˜•(Value Type)

๊ฐ’ํ˜•์€ ๋ณต์‚ฌ๋ณธ์„ ์ „๋‹ฌํ•œ๋‹ค.

int a = 100;
int b = a;
b += 50;

Console.WritLine($"a: {a}");
Console.WritLine($"b: {b}");

์œ„์™€ ๊ฐ™์€ ์ฝ”๋“œ์—์„œ ์ •์ˆ˜ํ˜• ๋ฐ์ดํ„ฐ์ธ b์— a๋ฅผ ๋Œ€์ž…ํ•˜์˜€์„ ๋•Œ b์—๋Š” a์˜ ๋ณต์‚ฌ๋ณธ์ด ๋“ค์–ด์˜ค๊ฒŒ ๋œ๋‹ค.

๋‹ค์‹œ ๋งํ•ด ๊ฐ’ํ˜•์€ ํ•œ ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•˜๋ฉด ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“œ๋Š” ์ž๋ฃŒํ˜•์ด๋‹ค. ํ•จ์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ธ์ž๋กœ ์ „๋‹ฌํ•ด๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค.

 

์ฆ‰, ๋‹ค๋ฅธ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด๋„ ์›๋ณธ์€ ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค.

a์™€ b๋ฅผ ๊ฐ๊ฐ ์ถœ๋ ฅํ•˜๋ฉด

์ด๊ฒŒ ๋ฌด์Šจ ๋ง์žฅ๋‚œ ๊ฐ™์€ ์†Œ๋ฆฌ๊ณ  ๋‹น์—ฐํ•œ ์†Œ๋ฆฌ์ธ๊ฐ€ ์‹ถ๊ฒ ์ง€๋งŒ ๋’ค์—์„œ ๋ณผ ์ฐธ์กฐํ˜•์—์„œ๋Š” ์ฐจ์ด๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.(์ฐธ์กฐ-์›๋ณธ๋„ ๋ฐ”๋€œ)

 

๊ฐ’ํ˜•์˜ ์ข…๋ฅ˜:

 

- ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํ˜•

  ์ •์ˆ˜ํ˜•: byte, sbyte, short, ushort, int, uint, long, ulong

  ์‹ค์ˆ˜ํ˜•: float, double, decimal

  ๋ถˆ๋ฆฌ์–ธ

  charํ˜•

 

- ๊ตฌ์ดˆ์ œ(Struct)

 

- enum(์‚ฌ์‹ค์ƒ ์ด๋ฆ„ ๋ถ™์ธ ์ •์ˆ˜)

 

* ์ฐธ๊ณ ๋กœ ๋ฌธ์ž์—ดํ˜•์ธ string์€ ์ฐธ์กฐํ˜•์ด๋‹ค!

  

์ฐธ์กฐํ˜•(Reference Type)

์ฐธ์กฐํ˜•์€ ์›๋ณธ์„ ์ „๋‹ฌํ•œ๋‹ค.

string[] a = new string[] { "Hello", "World" };
string[] b = a;
b[1] = "C# is fun!";

Console.WriteLine($"a: {a[1]}");
Console.WriteLine($"b: {b[1]}");

๋ฌธ์ž์—ด ๋ฐฐ์—ด์ธ b์— a๋ฅผ ๋Œ€์ž…ํ•˜์˜€์„ ๋•Œ b์—๋Š” a์˜ ์›๋ณธ์ด ๋“ค์–ด์˜ค๊ฒŒ ๋œ๋‹ค.

์ฐธ์กฐํ˜•์€ ํ•œ ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•˜๋ฉด ์›๋ณธ์„ ๋„˜๊ธฐ๋Š” ์ž๋ฃŒํ˜•์ด๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— b์˜ ๊ฐ’์ด ๋ฐ”๋€Œ๊ฒŒ ๋˜๋ฉด ์›๋ณธ์ธ a์˜ ๊ฐ’๋„ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค.

 

์ฆ‰, ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์›๋ณธ๋„ ํ•จ๊ป˜ ๋ณ€๊ฒฝ๋œ๋‹ค.

๋ฐฐ์—ด b์˜ ์š”์†Œ๋ฅผ ๋ฐ”๊พธ๋ฉด a์˜ ์š”์†Œ ๋˜ํ•œ ๋ฐ”๋€๋‹ค.

์ฐธ์กฐํ˜•์˜ ์ข…๋ฅ˜:

 

- ํด๋ž˜์Šค

 

- ๋ฐฐ์—ด

 

- ๋ฌธ์ž์—ด(string)

๋ฐ˜์‘ํ˜•