λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Programming/Algorithm

[2020-01-25] 01. μ†Œν”„νŠΈμ›¨μ–΄ 베이직 - 08 ~ 10

08. 8_Chapter_01. Cμ–Έμ–΄ - 07. ν•¨μˆ˜

ν•¨μˆ˜

- ν•¨μˆ˜λŠ” νŠΉμ •ν•œ κΈ°λŠ₯에 λŒ€ν•œ μ†ŒμŠ€μ½”λ“œκ°€ λ°˜λ³΅λ˜λŠ” 것을 쀄이도둝 ν•΄μ€Œ

- ν•¨μˆ˜μ˜ ν˜•νƒœλŠ” λ‹€μŒκ³Ό κ°™μŒ

λ°˜ν™˜μžλ£Œν˜• ν•¨μˆ˜λͺ…(λ§€κ°œλ³€μˆ˜ {

   // μˆ˜ν–‰λ  λͺ…λ Ήμ–΄

   return λ°˜ν™˜ν•  κ°’;

}

μž¬κ·€ν•¨μˆ˜

- 자기 μžμ‹ μ„ ν¬ν•¨ν•˜λŠ” ν•¨μˆ˜

- 기본적으둜 자기 μžμ‹ μ„ 계속 λΆˆλŸ¬λƒ„, λ”°λΌμ„œ λ°˜λ“œμ‹œ μž¬κ·€ μ’…λ£Œ 쑰건이 ν•„μš” (λ¬΄ν•œλ£¨ν”„κ°€ λ°œμƒν•˜μ§€ μ•Šλ„λ‘)

 

μž¬κ·€ν•¨μˆ˜λ₯Ό μ΄μš©ν•œ Factorial

 

09. 9_Chapter 01. C μ–Έμ–΄ - 08. λ°°μ—΄

λ°°μ—΄

- λ™μΌν•œ μ„±κ²©μ˜ 데이터λ₯Ό λ‹€μˆ˜ ν‘œν˜„ κ°€λŠ₯

 

λ°°μ—΄μ˜ μ„ μ–Έ 및 μ΄ˆκΈ°ν™”

μžλ£Œν˜• λ°°μ—΄λͺ… [λ°°μ—΄μ˜ 크기] = { μ΄ˆκΈ°ν™” κ°’ };	// μ΄ˆκΈ°ν™” 값은 없을 수 있음

int arrInt [3] = { 1, 2, 3 };
int arrInt2 [4] = { 0, };	// 전체 elementλ₯Ό 0으둜 μ΄ˆκΈ°ν™”

INT_MIN

- μ΅œλŒ“κ°’μ„ κ΅¬ν•˜κΈ° μœ„ν•΄ 자주 μ‚¬μš©λ˜λŠ” κΈ°λŠ₯

- limitsh ν—€λ”νŒŒμΌμ— μ •μ˜λ˜μ–΄μžˆμœΌλ©°, intν˜• λ²”μœ„μ˜ μ΅œμ†Ÿκ°’ λ°˜ν™˜

- INT_MAX도 있음

 

λ¬Έμžμ—΄κ³Ό λ°°μ—΄

- μ›μ‹œμ μΈ Cμ–Έμ–΄λŠ” 기본적으둜 자체적인 λ¬Έμžμ—΄ μžλ£Œν˜•μ„ μ œκ³΅ν•˜μ§€ μ•ŠμŒ

- λ”°λΌμ„œ Cμ–Έμ–΄μ—μ„œλŠ” 문자(Character)λ₯Ό μ—¬λŸ¬ 개 λ¬Άμ–΄ 놓은 ν˜•νƒœλ‘œ λ¬Έμžμ—΄(문자의 λ°°μ—΄)을 ν‘œν˜„

- C++μ—μ„œλŠ” μ΄λŸ¬ν•œ λΆˆνŽΈν•¨μ„ μ•Œκ³  있기 λ•Œλ¬Έμ— 자체적으둜 string μžλ£Œν˜• 제곡

 

10. 10_Chapter 01. C μ–Έμ–΄ - 09. 포인터

ν¬μΈν„°μ˜ κ°œλ…

- μ§€κΈˆκΉŒμ§€μ˜ λ³€μˆ˜λŠ” κ·Έ 자체둜 μžμ‹ μ˜ μžλ£Œν˜•μ— λ§žλŠ” 값을 μ €μž₯

- 포인터 λ³€μˆ˜λŠ” νŠΉμ •ν•œ λ³€μˆ˜ μžμ²΄κ°€ μ‘΄μž¬ν•˜λŠ” λ©”λͺ¨λ¦¬ μ£Όμ†Œμ˜ 값을 가짐

int *b = &a;

- μœ„μ™€ 같이 'μ„ μ–Έν•  λ•Œ' μ“°λŠ” *λŠ” 포인터 λ³€μˆ˜μž„μ„ μ•Œλ €μ£ΌκΈ° μœ„ν•œ λͺ©μ 

- 이후에 *b라고 μ“°κ²Œ 되면, 이것은 포인터 λ³€μˆ˜ bκ°€ κ°€λ¦¬ν‚€λŠ” μ£Όμ†Œμ˜ 값을 의미

 

포인터 κ΄€λ ¨ μ—°μ‚°μž

- μ£Όμ†Œ μ—°μ‚°μž(&) : λ³€μˆ˜ μ•žμ— λΆ™μ–΄μ„œ λ³€μˆ˜μ˜ λ©”λͺ¨λ¦¬ μ‹œμž‘ μ£Όμ†Œ 값을 ꡬ함

- 포인터 (*) : 포인터 λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ μ‚¬μš©

- κ°„μ ‘ μ°Έμ‘° μ—°μ‚°μž (*) : μ„ μ–Έλœ 포인터 λ³€μˆ˜κ°€ κ°€λ¦¬ν‚€λŠ” λ³€μˆ˜λ₯Ό ꡬ함

λ°°μ—΄ 각 μ›μ†Œμ˜ μ£Όμ†Œκ°’ 좜λ ₯

- μ£Όμ†Œκ°’ 4 byteμ”© 증가함을 확인  κ°€λŠ₯ (4 byte * 10 = 40 byte 짜리 λ°°μ—΄)

 

ν¬μΈν„°μ˜ κ°•λ ₯ν•œ κΈ°λŠ₯

- ν¬μΈν„°λŠ” 컴퓨터 μ‹œμŠ€ν…œμ˜ νŠΉμ •ν•œ λ©”λͺ¨λ¦¬μ— λ°”λ‘œ μ ‘κ·Ό κ°€λŠ₯

- λ”°λΌμ„œ 기쑴에 μ‘΄μž¬ν•˜λ˜ μ€‘μš”ν•œ λ©”λͺ¨λ¦¬ μ˜μ—­μ— μ ‘κ·Όν•˜μ§€ μ•Šλ„λ‘ 해야함

- λ‹€μŒκ³Ό 같은 μ½”λ“œλŠ” ꡉμž₯히 μœ„ν—˜ν•œ μ½”λ“œ

int *a = 0x33484735;
*a = 0;

 

 λ‹€μ€‘ 포인터

λ°°μ—΄κ³Ό 포인터

- λ°°μ—΄κ³Ό ν¬μΈν„°λŠ” 사싀 동일

- 배열을 μ„ μ–Έν•œ μ΄ν›„μ—λŠ” κ·Έ 이름 μžμ²΄κ°€ 포인터 λ³€μˆ˜μ™€ 동일