Shiny Lime Green Star J, [Cํ”„๋กœ๊ทธ๋ž˜๋ฐ] 10์ฃผ์ฐจ. ํฌ์ธํ„ฐ
  • ํฌ์ธํ„ฐ๋Š” ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ณ€์ˆ˜
  • *ํฌ์ธํ„ฐ๋Š” ์‚ฌ์šฉ ์ „์— ๋ฐ˜๋“œ์‹œ ์ดˆ๊ธฐํ™”๋ฅผ ํ•ด์•ผํ•œ๋‹ค*

 

ใ…ก  ์ฃผ์†Œ ์—ฐ์‚ฐ์ž &

  • ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์—ฐ์‚ฐ์ž
  • ๋ณ€์ˆ˜ i์˜ ์ฃผ์†Œ = &i

ใ…ก  ๊ฐ„์ ‘ ์ฐธ์กฐ ์—ฐ์‚ฐ์ž *

  • ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š” ์—ฐ์‚ฐ์ž
  • ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋งค์šฐ ๋†’๋‹ค (๊ด„ํ˜ธ ๋‹ค์Œ์œผ๋กœ)

 

ใ…ก  #1 ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ ์ถœ๋ ฅ

  • &๋ณ€์ˆ˜์ด๋ฆ„

ใ…ก  #2 a ์™€ b ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜

  • swap(& a, &b);

ใ…ก  ํฌ์ธํ„ฐ ์—ฐ์‚ฐ

  • ์ฆ๊ฐ€(++), ๊ฐ์†Œ(--), ๋ง์…ˆ(+), ๋บ„์…ˆ(-) ๋งŒ ๊ฐ€๋Šฅ
ํฌ์ธํ„ฐ ํƒ€์ž… ++ ์—ฐ์‚ฐ ํ›„ ์ฆ๊ฐ€ ๊ฐ’
char 1
short 2
int 4
float 4
double 8
  • ์ฆ๊ฐ€ ์—ฐ์‚ฐ ์˜ˆ์ œ

  • ๊ฐ„์ ‘ ์ฐธ์กฐ ์—ฐ์‚ฐ์ž์™€ ์ฆ๊ฐ ์—ฐ์‚ฐ์ž
์ˆ˜์‹ ์˜๋ฏธ
v = *p++ p ใ…ก> v ๋Œ€์ž… ํ›„ p ์ฆ๊ฐ€
v = (*p)++ p ใ…ก> v ๋Œ€์ž… ํ›„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’์— ์ฆ๊ฐ€
v = *++p p ์ฆ๊ฐ€ ํ›„ p ใ…ก> v ๋Œ€์ž… = *(++p) 
v = ++*p p ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’ ๊ฐ€์ ธ์˜จ ํ›„ ์ฆ๊ฐ€ ใ…ก> v ๋Œ€์ž… = ++(*p)
  • ๊ฐ„์ ‘ ์ฐธ์กฐ ์—ฐ์‚ฐ์ž์™€ ์ฆ๊ฐ ์—ฐ์‚ฐ์ž ์˜ˆ์ œ

๊ฒฐ๊ณผ๊ฐ’

 

ใ…ก ํ•จ์ˆ˜์™€ ํฌ์ธํ„ฐ

 

· ๊ฐ’์— ์˜ํ•œ ํ˜ธ์ถœ (call-by-value)

  • C์˜ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•
  • ์ธ์ˆ˜์˜ ๊ฐ’์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ๋ณต์‚ฌ๋œ๋‹ค.

· ์ฐธ์กฐ์— ์˜ํ•œ ํ˜ธ์ถœ (call-by-reference)

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

· ๋ณดํ†ต์€ ๊ฐ’์— ์˜ํ•œ ํ˜ธ์ถœ ์‚ฌ์šฉ

· ํ•จ์ˆ˜ ์™ธ๋ถ€์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ๋• ์ฐธ์กฐ์— ์˜ํ•œ ํ˜ธ์ถœ ์‚ฌ์šฉ

 

*์ดˆ๊ธฐํ™”๊ฐ€ ์•ˆ๋œ ํฌ์ธํ„ฐ ์‚ฌ์šฉ X*

*p = &number;

 

*ํฌ์ธํ„ฐ๊ฐ€ ์•„๋ฌด๊ฒƒ๋„ ๊ฐ€๋ฆฌํ‚ค์ง€ ์•Š์œผ๋ฉด NULL๋กœ ์ดˆ๊ธฐํ™” ใ…ก> ํ•˜๋“œ์›จ์–ด๋กœ ๊ฐ์ง€ ๊ฐ€๋Šฅ, ์œ ํšจ์„ฑ ์—ฌ๋ถ€ ํŒ๋‹จ ์‰ฝ๋‹ค*

 

*ํฌ์ธํ„ฐ ํƒ€์ž… = ๋ณ€์ˆ˜์˜ ํƒ€์ž…*

int i <> double *pd

doubleํ˜• ํฌ์ธํ„ฐ์— intํ˜• ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ ๋Œ€์ž… ใ…ก> ์˜ค๋ฅ˜

 

· ๋‘ ๊ฐœ ์ด์ƒ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜

๊ฒฐ๊ณผ๊ฐ’

 

ใ…ก ํฌ์ธํ„ฐ์™€ ๋ฐฐ์—ด

 

· ๋ฐฐ์—ด ์ด๋ฆ„์ด ๋ฐ”๋กœ ํฌ์ธํ„ฐ์ด๋‹ค.

· ํฌ์ธํ„ฐ๋Š” ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

· ๋ฐฐ์—ด ์ด๋ฆ„์€ ์ฒซ๋ฒˆ์งธ ๋ฐฐ์—ด ์›์†Œ์˜ ์ฃผ์†Œ

a[0] = *a

a[1] = *(a+1)

a[2] = *(a+2)

a[n] = *(a+n)

 

 

ใ…ก  #3 ๋ฐฐ์—ด ์ฒ˜๋ฆฌ ํ•จ์ˆ˜

  • ํ‰๊ท ์„ ๊ณ„์‚ฐํ•˜๊ณ  ๋ฐฐ์—ด์„ ์ถœ๋ ฅํ•˜๋Š” ๋‘๊ฐ€์ง€ ํ•จ์ˆ˜
  • double get_array_avg(int values[], int n) ๋ฐฐ์—ด ์š”์†Œ์˜ ํ‰๊ท ๊ฐ’ ๊ณ„์‚ฐ
  • void print_array(int values[], int n) ๋ฐฐ์—ด ์š”์†Œ๋“ค ์ถœ๋ ฅ

๋ฐฐ์—ด ์š”์†Œ์˜ ํ‰๊ท ์„ ๊ณ„์‚ฐํ•˜๋Š” ํ•จ์ˆ˜
๋ฐฐ์—ด ์š”์†Œ๋ฅผ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜
๊ฒฐ๊ณผ๊ฐ’

 

ใ…ก  #4 ๋ฐฐ์—ด์˜ ๊ฐ’ ์—ญ์ˆœ ์ถœ๋ ฅ

  • ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉ
  • &array[i]
  • *(p + i)

๊ฒฐ๊ณผ๊ฐ’

user-img J
wogml
ํ˜„์žฌ๊ธ€
[Cํ”„๋กœ๊ทธ๋ž˜๋ฐ] 10์ฃผ์ฐจ. ํฌ์ธํ„ฐ
ํ•จ๊ป˜ ๋ณด๋ฉด ์ข‹์„ ํฌ์ŠคํŠธ