C++/ν•¨μˆ˜ (Function)

string mystr = "Hello Guys!"; const char *c_mystr = mystr.c_str(); cout
C++μ—μ„œ ν•¨μˆ˜λŠ” 포인터듀도 리턴할 수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬ν•œ ν•¨μˆ˜λ“€μ€ type *funcion(); 의 ν˜•νƒœλ‘œ μ„ μ–Έλ©λ‹ˆλ‹€. ν•œκ°€μ§€ μ€‘μš”ν•œ 점은 'μ ˆλŒ€λ‘œ ν•¨μˆ˜ λ‚΄μ˜ 둜컬 λ³€μˆ˜λ₯Ό λ¦¬ν„΄ν•˜μ§€ μ•ŠλŠ”λ‹€.' μž…λ‹ˆλ‹€. κ°„λ‹¨ν•œ μ˜ˆμ‹œ μ½”λ“œλ₯Ό μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€. int *largest_int(int *int_ptr1, int *int_ptr2){ if (*int_ptr1 > *int_ptr2) return int_ptr1; else return int_ptr2; } λ‘κ°œμ˜ μ •μˆ˜ 포인터λ₯Ό λΉ„κ΅ν•˜μ—¬ 더 큰 κ°’μ˜ μ •μˆ˜μ˜ 포인터λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. 이 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” 메인 ν•¨μˆ˜μ˜ μ˜ˆμ‹œλŠ” λ‹€μŒκ³Ό 같을 수 μžˆμŠ΅λ‹ˆλ‹€. int main() { int a {30}; int b {40}; int *largest_ptr{nullptr}; largest_p..
Recursive function, μž¬κ·€ν•¨μˆ˜λŠ” '슀슀둜λ₯Ό ν˜ΈμΆœν•˜λŠ” ν•¨μˆ˜' μž…λ‹ˆλ‹€. 슀슀둜λ₯Ό ν˜ΈμΆœν•˜λŠ” 방법은 직접 ν˜ΈμΆœν•  μˆ˜λ„ 있고, λ‹€λ₯Έ ν•¨μˆ˜λ₯Ό 톡해 κ°„μ ‘ ν˜ΈμΆœν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. μž¬κ·€ν•¨μˆ˜λŠ” 이진탐색, νŒ©ν† λ¦¬μ–Ό μ—°μ‚°, ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄ λ“± μˆ˜ν•™μ΄λ‚˜ 데이터λ₯Ό λ‹€λ£¨λŠ” λΆ„μ•Όμ—μ„œ 자주 μ‚¬μš©λ©λ‹ˆλ‹€. 첫번째둜 νŒ©ν† λ¦¬μ–Ό(!)의 μ˜ˆμ‹œλ₯Ό λ“€μ–΄λ³΄κ² μŠ΅λ‹ˆλ‹€. μš°μ„  νŒ©ν† λ¦¬μ–Όμ΄λž€, 'κ·Έ μˆ˜λ³΄λ‹€ μž‘κ±°λ‚˜ 같은 λͺ¨λ“  μ–‘μ˜ μ •μˆ˜μ˜ κ³±' μž…λ‹ˆλ‹€. 0! = 1 이고, n! = n * (n - 1)! 이라고 μ΄ν•΄ν•˜λ©΄ λ©λ‹ˆλ‹€. κ·Έ ν•¨μˆ˜λŠ” λ‹€μŒκ³Ό 같이 μž¬κ·€ν•¨μˆ˜λ₯Ό ν™œμš©ν•˜μ—¬ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€. // factorial function unsigned long long factorial(unsigned long long n) { if (n == 0) re..
C++ μ—μ„œ ν•¨μˆ˜μ— 인자λ₯Ό μ „λ‹¬ν•˜λ©΄, μ „λ‹¬λœ 인자 κ·Έ μžμ²΄κ°€ μ•„λ‹Œ κ·Έ 인자의 값이 λ³΅μ‚¬λ˜μ–΄ μ‚¬μš©λ©λ‹ˆλ‹€. 즉, ν•¨μˆ˜ λ‚΄μ—μ„œ λ”°λ‘œ λ³€μˆ˜μ˜ 값을 λ³€ν™”μ‹œν‚€λŠ” ν–‰μœ„λ₯Ό ν•˜μ§€ μ•ŠλŠ” 이상 원본 κ°’μ˜ λ³€ν™”λŠ” μ—†μŠ΅λ‹ˆλ‹€. 이λ₯Ό μš°λ¦¬λŠ” 'pass by value' λ°©λ²•μœΌλ‘œ λΆ€λ¦…λ‹ˆλ‹€. Passy by value(값에 μ˜ν•œ 전달)은 μš°λ¦¬κ°€ 기쑴에 μ‚¬μš©ν•˜λ˜ λͺ¨λ“  ν•¨μˆ˜λ“€μ΄ ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. C++ ν•¨μˆ˜μ˜ κΈ°λ³Έ μž‘λ™ λ°©λ²•μž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ, μš°λ¦¬λŠ” ν•¨μˆ˜λ₯Ό 톡해 원본 값에 λ³€ν™”λ₯Ό μ£Όκ³  싢을 λ•Œκ°€ μžˆμŠ΅λ‹ˆλ‹€. λ˜λŠ” 맀우 크기가 큰 벑터와 같은 μžλ£Œμ— λŒ€ν•΄μ„œ λ°μ΄ν„°μ˜ λ‚­λΉ„λ₯Ό λ°©μ§€ν•˜κ³ μž ν•˜κ³  싢을 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 크기가 μ—„μ²­ 큰 벑터λ₯Ό λ‹€λ£¨λŠ”λ° ꡳ이 λ™μΌν•œ 벑터λ₯Ό λ³΅μ‚¬ν•΄μ„œ μ €μž₯ν•  ν•„μš”λŠ” 없을 λ•Œλ„ μžˆμ„ ν…Œλ‹ˆκΉŒμš”. κ·Έλ ‡κ²Œ ν•˜κΈ° μœ„ν•΄μ„œλŠ”, μš°λ¦¬λŠ” ν•¨μˆ˜..
Chan Lee
'C++/ν•¨μˆ˜ (Function)' μΉ΄ν…Œκ³ λ¦¬μ˜ κΈ€ λͺ©λ‘ (2 Page)