๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœ’๏ธ C++ programming/Practice & Tips

[Practice & Tips] Practice 5 : ํฌ์ธํ„ฐ์™€ ๋ณ€์ˆ˜, ๋ฐฐ์—ด๊ณผ ์ฐธ์กฐ

by A Lim Han 2022. 5. 9.

 

 

1. ํฌ์ธํ„ฐ์™€ ๋ณ€์ˆ˜

 

 

A) ๋ณ€์ˆ˜์™€ ํฌ์ธํŠธ ๋ณ€์ˆ˜

 

 

a) ๋ณ€์ˆ˜

: ๋ฐ์ดํ„ฐ ์ €์žฅ์„ ๋ชฉ์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ํ• ๋‹น๋˜์–ด์ง„ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์˜ ๋ช…์นญ์œผ๋กœ, ๋ณ€์ˆ˜๋ฅผ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„ ์–ธ๊ณผ ์ •์˜ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•œ๋‹ค.

 

ex) int o;

     o = 10;

 

 

b) ํฌ์ธํ„ฐ ๋ณ€์ˆ˜

: ํŠน์ • ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ๋ณ€์ˆ˜

 

# ์ง€์ • ๋ฐฉ๋ฒ• : ์ž๋ฃŒํ˜•์˜ ๋’ค์ชฝ์— '*'๋ฅผ ์ฒจ๊ฐ€ํ•จ์œผ๋กœ์จ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

                  ex) int* p;, int** r;

 

# ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์˜ ๋‹ค๋ฅธ ์ด๋ฆ„

: ์ž๋ฃŒํ˜•์˜ ๋’คํŽธ์— 1๊ฐœ์˜ '*'๊ฐ€ ์ฒจ๊ฐ€๋œ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋Š” ์ผ์ค‘ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ, ํ•™๋ฌธ์ƒ์˜ ์˜๋ฏธ๋Š” ์ผ๋ฐ˜ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์™€ ๋™์ผํ•˜๋‹ค.

 

 

 

B) ํฌ์ธํ„ฐ ์„ ์–ธ ๋ฐ ์ดˆ๊ธฐํ™”

 

 

a) ๋ถ„๋ฆฌํ˜• ์„ ์–ธ

 

# int *p; ๋“ฑ ๊ณผ ๊ฐ™์ด ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ p๋ฅผ ์ •์ˆ˜ ์ง€์ • ๋ฉ”๋ชจ๋ฆฌ์— ๋Œ€ํ•ด ์„ ์–ธ

  ์ดํ›„ p = &n; ๊ณผ ๊ฐ™์ด๋ณ€์ˆ˜ p ๋ฅผ &๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ n์˜ ์ฃผ์†Œ๋ฅผ p์— ์ €์žฅํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ž‘์šฉ์„ ์ดˆ๊ธฐํ™”๋ผ๊ณ  ํ•œ๋‹ค.

  ์ด๋–„ ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ธฐํ˜ธ์ธ '&'์™€ ๋ฉ”๋ชจ๋ฆฌ ์•ˆ ํฌ์ธํ„ฐ๊ฐ€ ์ง€์ •ํ•˜๋Š” ๊ฐ’์„ ์ถ”์ถœํ•˜๋Š” ๊ธฐํ˜ธ์ธ '*'์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

 

b) ํ†ตํ•ฉํ˜• ์„ ์–ธ

 

# ๋ถ„๋ฆฌํ˜• ์„ ์–ธ๊ณผ๋Š” ๋‹ฌ๋ฆฌ n๊ณผ์˜ ๋งค์นญ ์ž‘์—…๊ณผ ํฌ์ธํ„ฐ ์„ ์–ธ์„ ๋™์‹œ์— ์ง„ํ–‰ํ•˜๋Š” ์„ ์–ธ ๋ฐฉ์‹์ด๋‹ค.   

   'int *p = &n '์ฒ˜๋Ÿผ ํฌ์ธํ„ฐ p๋ฅผ ์„ ์–ธํ•˜๋ฉฐ ์ด๋ฅผ &์„ ์‚ฌ์šฉํ•˜์—ฌ n๊ณผ ๋งค์น˜ํ•œ๋‹ค.

 

 

 

c) ์ž๋ฃŒํ˜•์˜ ํฌ๊ธฐ

 

 

# ์ •์ˆ˜ํ˜• ์ž๋ฃŒํ˜•

 

- char : 1

- short : 2

- long : 4

- long long : 8

- int : 4

 

# ์‹ค์ˆ˜ํ˜• ์ž๋ฃŒํ˜•

 

- float : 4

- double : 8

 

 

 

 

C) ํฌ์ธํ„ฐ, ๋ณ€์ˆ˜์™€ ๊ด€๋ จ๋œ ํฌ๊ธฐ

 

 

a) ํฌ์ธํ„ฐ๊ฐ€ ์ง€์‹œํ•˜๋Š” ๋ณ€์ˆ˜ ํฌ๊ธฐ

 

- int ํ˜•  ->  4byte์˜ ํฌ๊ธฐ ๋งŒํผ ์ฝ์–ด๋“ค์ž„

- char ํ˜• -> 1byte ์˜ ํฌ๊ธฐ๋งŒํผ ์ฝ์–ด๋“ค์ž„

- doubleํ˜• -> 8byte์˜ ํฌ๊ธฐ๋งŒํผ ์ฝ์–ด๋“ค์ž„

 

 

b) ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ ๊ทธ ์ž์ฒด์˜ ํฌ๊ธฐ

 

- ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋Š” ๊ทธ ์ž์ฒด๋กœ 4byte์˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง„๋‹ค.

 

ex) sizeof (๋ชจ๋“  ํฌ์ธํŠธ ๋ณ€์ˆ˜) = 4

 

 

 

2. ํฌ์ธํ„ฐ์™€ ๋ฐฐ์—ด

 

 

A) ๋ฐฐ์—ด๊ณผ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜

 

 

# ๋ฐฐ์—ด : ์ž๋ฃŒ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๋‚˜์—ดํ•œ ๊ตฌ์กฐ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ ํ˜•์‹์˜ ํฌ๊ธฐ๋งŒํผ ๊ฐ ์›์†Œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•œ๋‹ค. ๋ฐฐ์—ด์€ [์ž๋ฃŒํ˜•] [์‹๋ณ„์ž] [๋ฐฐ์—ด             ํฌ๊ธฐ] ์˜ ํ˜•์‹์œผ๋กœ ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

           ๋ฐฐ์—ด์˜ ๊ฐ ์›์†Œ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์—ฐ์ด์–ด ๋†“์ด๊ณ , ๋ฐฐ์—ด์˜ ๊ทธ ๋‹ค์Œ ์œ„์น˜์˜ ์›์†Œ๋กœ ์ ‘๊ธˆ ์‹œ *(ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ +1)๋กœ ํ‘œํ˜„ํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ ๋ฐฐ์—ด์˜             ์ฒซ ๋ฒˆ์งธ ๊ฒƒ์œผ๋กœ๋ถ€ํ„ฐ m๋งŒํผ ๋–จ์—ฌ์ ธ ์žˆ๋Š” ์›์†Œ์—๋Š” *(ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ +m)์˜ ํ‘œํ˜„์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

ex) int n[5] = { 1, 2, 3, 4, 5 };

   

ex) int n[4] = { 1, 2, 3, 4 };

int *p = NULL;

p = n; or p = &n[0];

 

# ํฌ์ธํ„ฐ ๋ณ€์ˆ˜ : ๋ฉ”๋ชจ๋ฆฌ ์† ํŠน์ • ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ณ€์ˆ˜์ด๋‹ค.

 

ex) int *p = NULL;                  -> ํŠน์ • ๋ฐฐ์—ด์— ๋Œ€ํ•˜์—ฌ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์›์†Œ๋ฅผ ์ฃผ์†Œ๋กœ ์ง€์ •ํ•œ๋‹ค.

p = n; or p= &n[0]; 

 

 

 

3. ์ฐธ์กฐ

 

 

A) ์ฐธ์กฐ์™€ ์ฐธ์กฐ์ž ์„ ์–ธ

 

 

# ์ฐธ์กฐ

 

: ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋ณ€์ˆ˜์— ๋˜ ๋‹ค๋ฅธ ์ด๋ฆ„์ธ ๋ณ„๋ช…์„ ๋ถ™์ด๋Š” ๊ฒƒ์œผ๋กœ, ๋งŒ๋“ค์–ด์ง„ ๋ณ„๋ช…์„ ํ†ตํ•ด ๋ณ€์ˆ˜์˜ ๊ณ ์œ  ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์œผ๋กœ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ณ„๋ช…์„ ์ง“๋Š” ๊ฒƒ์ผ ๋ฟ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒˆ๋กœ์šด ๊ณต๊ฐ„์„ ์ฃผ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ฉฐ, ๊ธฐ์กด์˜ ๋ณ€์ˆ˜๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ์“ฐ์ผ ๋ฟ์ด๋‹ค. ๋งŽ์€ ์ปดํ“จํ„ฐ ์–ธ์–ด ์ค‘์—์„œ๋„ C++ ์—์„œ ์ฒ˜์Œ์œผ๋กœ ์“ฐ์ธ ๊ฐœ๋…์œผ๋กœ, ํ•จ์ˆ˜๋ฅผ ๋ถˆ๋Ÿฌ๋‚ผ ๋•Œ ์ž์ฃผ ์“ฐ์ธ๋‹ค.

 

 

# ์ฐธ์กฐ์ž ์„ ์–ธ

: ์ปดํŒŒ์ผ๋Ÿฌ์—๊ฒŒ ์ง€๊ธˆ ์ฐธ์กฐํ•œ ๋‚ด์šฉ์ด ๋˜ ๋‹ค๋ฅธ ์ด๋ฆ„์ž„์„ ์•Œ๋ฆฌ๋Š” ์—ญํ• ์ด๋ฉฐ, ์„ ์–ธ ๋ฐฉ๋ฒ•์€ ์ง€์ •ํ•˜๊ณ ์ž ํ•˜๋Š” ํƒ€์ž… ๋’ค์— '&'์„ ๋ถ™์ด๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰๋œ๋‹ค.

 

ex) int n = 2;

int &ref = n;

 

 

B) ์ฐธ์กฐ์™€ ํฌ์ธํ„ฐ์˜ ์ฐจ์ด

 

# ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋Š” ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ์— ๋ณ„๋„ ๊ณต๊ฐ„์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ฐธ์กฐ์ž์˜ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ์— ๊ณต๊ฐ„์„ ๋ถ€์—ฌํ•˜๋Š” ๋Šฅ๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค. 

 

# ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์˜ ๊ฒฝ์šฐ ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐฐ์—ด ๊ตฌ์กฐ ์† ๋‹ค๋ฅธ ์ธ๋ฑ์Šค ์•ˆ์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ์ฐธ์กฐ์ž์˜ ๊ฒฝ์šฐ ํฌ์ธํ„ฐ์™€ ๋‹ฌ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์œผ๋ฉฐ, ์ด์— ๋”ฐ๋ผ ์•ˆ์ •์„ฑ์ด ํฌ์ธํ„ฐ์— ๋น„ํ•ด ๋†’๋‹ค.

 

# ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋Š” ์ฃผ์†Œ์˜ ๊ฐ’์„ ์ด์šฉํ•˜์—ฌ ํ•ด๋‹น ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ทธ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์–ด ํŠน์ • ๋Œ€์ƒ์˜ ์ธ๋ฑ์Šค ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ฐธ์กฐ์ž๋Š” ๋ณ€์ˆ˜ ๋‚ด๋ถ€์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด ์—†๋Š” ๊ทธ์ € ๋ณ„๋ช…์— ๋ถˆ๊ณผํ•˜๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

 

4. ํ•จ์ˆ˜์˜ ์ธ์ž ์ „๋‹ฌ ๋ฐฉ์‹

 

A) ํ•จ์ˆ˜ ํ˜ธ์ถœ๊ณผ ์ธ์ž ์ „๋‹ฌ

 

# ํ•จ์ˆ˜ ํ˜ธ์ถœ

: ํŠน์ • ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜๋ฅผ ํ•œ๋ฒˆ ๋งŒ๋“ค์–ด ๋†“๊ณ  ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ๋‹ค์‹œ ๋งŒ๋“œ๋Š” ๊ณผ์ • ์—†์ด ๋ถˆ๋Ÿฌ์™€ ํŽธ๋ฆฌํ•˜๊ฒŒ ์“ฐ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ํ•จ์ˆ˜ ์•ˆ์— ์กด์žฌํ•˜๋Š” ๋ฌธ์žฅ๋“ค์ด ์ˆœ์„œ๋Œ€๋กœ ์‹คํ–‰๋˜๊ณ , ์ด ๋ฌธ์žฅ๋“ค์ด ๋ชจ๋‘ ์‹คํ˜„๋˜๋ฉด  ํ˜ธ์ถœ๋˜์–ด์ง„ ์œ„์น˜๋กœ ๋‹ค์‹œ ๋˜๋Œ์•„๊ฐ„๋‹ค.

 

 

 

B) Call by X ์ธ์ž ์ „๋‹ฌ ๋ฐฉ์‹

 

a) Call by value

: ์ธ์ˆ˜์˜ ๊ฐ’์„ ํ•จ์ˆ˜์— ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ์ธ์ˆ˜์˜ ๊ฐ’์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ณต์‚ฌ๋˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•œ๋‹ค. ์ด๋•Œ ๋งŒ๋“ค์–ด์ง„ ๋งค๊ฐœ๋ณ€์ˆ˜๋“ค์€ ๊ทธ๊ฒƒ๋“ค์˜ ๊ฐ’์ด ๋ฐ”๋€Œ์–ด๋„ ์›๋ณธ ๋ณ€์ˆ˜๋“ค์—๊ฒŒ ์˜ํ–ฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ „์„ฑ์ด ์žˆ๋Š” ์ „๋‹ฌ ๋ฐฉ๋ฒ•์ด๋‹ค.

 

์•„๋ž˜์˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ swap ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์—์„œ s ,n ๊ฐ™์€ ์ธ์ž์˜ ๊ฐ’์€ ๋งค๊ฐœ ๋ณ€์ˆ˜ k, m ์œผ๋กœ ๋ณต์‚ฌ๋˜์–ด ์ „๋‹ฌ๋œ๋‹ค. ์ดํ›„์— swap ํ•จ์ˆ˜์˜ ๊ณผ์ •์ด ์ˆ˜ํ–‰๋˜๋ฉฐ ํ•จ์ˆ˜์— ํฌํ•จ๋œ ์ง€์—ญ๋ณ€์ˆ˜๋“ค์˜ ๊ฐ’์ด ์„œ๋กœ ๋ฐ”๋€๋‹ค. ์ „ํ™˜ ์ดํ›„ ๋‹ค์‹œ main ํ•จ์ˆ˜๋กœ ๋˜๋Œ์•„์˜ค๊ณ , ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ดํ›„์˜ ๊ณผ์ •์ด ์‹คํ–‰๋œ๋‹ค.

 

 

 

b) Call by address

: ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ์˜์—ญ ์† ์‹ค์ธ์ž๋ฅผ ์™ธ๋ถ€ ํ•จ์ˆ˜์—์„œ ์ œ์–ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ํ˜ธ์ถœ ๋งค๊ฐœ์ฒด๊ฐ€ ์ฃผ์†Œ์ธ ๋ฐฉ๋ฒ•์ด๋‹ค. ์ฃผ์†Œ๋ฅผ ์ „๋‹ฌ๋ฐ›๋Š” ๊ณผ์ •์ด ์กด์žฌํ•˜๊ธฐ์— ์ˆ˜์šฉํ•˜๋Š” ์ชฝ์€ ํฌ์ธํ„ฐ์—ฌ์•ผ๋งŒ ํ•˜๋ฉฐ, ๋Œ€์ฒด์ ์œผ๋กœ ๋™์ž‘ ๋ฐฉ์‹์ด ๊ฐ’์— ์˜ํ•œ ํ˜ธ์ถœ ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•˜๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

 

์•„๋ž˜์˜ ์‚ฌ์ง„์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ p, z์˜ ์ฃผ์†Œ๊ฐ€ ๊ฐ๊ฐ ๋งค๊ฐœ๋ณ€์ˆ˜์ธ r, k์— ํ• ๋‹น๋˜๋ฉฐ r, k๊ฐ€ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๋กœ์จ ์„ ์–ธ๋œ๋‹ค.

 

 

 

 

c) Call by reference

: ํ•จ์ˆ˜ ์•ˆ์—์„œ ์™ธ๋ถ€ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด์„œ๋„ ํ•จ์ˆ˜ ํ˜ธ์ถœ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ฒ˜์Œ๋ถ€ํ„ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ๊ณ , C++์— ์ฐธ์กฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉฐ ๊ฐ€๋Šฅํ•ด์ง„ ๋ฐฉ์‹์ด๋‹ค. ์ •๋ณด๋ฅผ ๋ฐ›์„ ๋•Œ & ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์‹ค์ธ์ž์˜ ์ฐธ์กฐ ์ •๋ณด๋ฅผ ์ „๋‹ฌ๋ฐ›๋Š” ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค. ๋‹ค๋ฅธ ํ˜ธ์ถœ ๋ฐฉ์‹๊ณผ ๊ฒฐ๊ณผ๋Š” ๋น„์Šทํ•˜์ง€๋งŒ, ๋‹ค์†Œ ์—๋Ÿฌ ๋ฐœ์ƒ์˜ ๊ฐ€๋Šฅ์„ฑ์ด ์ ๊ณ  ๊ฐ€๋…์„ฑ์ด ์ข‹๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

 

์•„๋ž˜ ์‚ฌ์ง„์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ p, z์˜ ๊ฐ’์ด swap ํ•จ์ˆ˜์˜ ์•ˆ์œผ๋กœ ๋“ค์–ด๊ฐ€๊ณ , ์ดํ›„ int %w = z, int %l = p ์˜ ๊ณผ์ •์„ ๊ฑฐ์ณ w์™€ ใ…ฃ๊ฐ€ ๊ฐ๊ฐ z, p์˜ ์ฐธ์กฐ์ž๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค.

 

 

 

5. inline ํ•จ์ˆ˜

: ํ•จ์ˆ˜์˜ ํ˜ธ์ถœ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์—†์• ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.

ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ์— ๊ฐ„ํ˜น '์˜ค๋ฒ„ํ—ค๋“œ'๋ผ๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜์—ฌ ํ•จ์ˆ˜ ํ˜ธ์ถœ์— ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. C++์—๋Š” ์˜ค๋ฒ„ํ—ค๋“œ ํ˜„์ƒ์„ ๋ง‰๊ธฐ ์œ„ํ•œ ํ‚ค์›Œ๋“œ์ธ 'inline'์ด ์กด์žฌํ•˜๊ณ , ํ•จ์ˆ˜๋ช… ์•ž์— ๋ถ™์ž„์œผ๋กœ์จ ์ธ๋ผ์ธ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

ํ•จ์ˆ˜์˜ ์ด๋ฆ„ ์•ž์ชฝ์— inline ํ‚ค์›Œ๋“œ๊ฐ€ ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ • ์—†์ด ํ•จ์ˆ˜์˜ ์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœํ•œ ๊ณณ์— ์ง์ ‘ ๋ถ™์ด๋Š” ์ž‘์—…์„ ์‹ค์‹œํ•œ๋‹ค. 

 

ex) inline double square(double i){    return i*i;}