λΆ„λ₯˜ 전체보기

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..
일반적인 λ³€μˆ˜μ— λŒ€ν•œ 포인터λ₯Ό κ³΅λΆ€ν•˜λ‹€λ³΄λ©΄, μƒμˆ˜ 값에 λŒ€ν•œ 포인터가 κΆκΈˆν•΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. const ν‚€μ›Œλ“œλ‘œ μ„ μ–Έν•˜λŠ” μƒμˆ˜λŠ” μ•Œλ‹€μ‹œν”Ό κ·Έ 값이 μ„ μ–Έκ³Ό μ΄ˆκΈ°ν™” 이후에 λ³€κ²½ν•  수 μ—†μŠ΅λ‹ˆλ‹€. 그리고 ν¬μΈν„°λŠ” μƒμˆ˜μ— λŒ€ν•œ κΈ°λŠ₯도 μ—­μ‹œ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μƒμˆ˜μ™€ κ΄€λ ¨λœ ν¬μΈν„°λŠ” 총 세가지 μ’…λ₯˜λ‘œ λΆ„λ₯˜ν•  수 μžˆκ² μŠ΅λ‹ˆλ‹€. μƒμˆ˜μ— λŒ€ν•œ 포인터 (pointers to constants) μƒμˆ˜ 포인터 (constant pointers) μƒμˆ˜μ— λŒ€ν•œ μƒμˆ˜ 포인터 (constant pointers to constnats) ν•˜λ‚˜μ”© μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. 1. μƒμˆ˜μ— λŒ€ν•œ 포인터 (pointers to constants) μƒμˆ˜μ— λŒ€ν•œ 포인터가 κ°€λ₯΄ν‚€λŠ” λ°μ΄ν„°λŠ” μƒμˆ˜μ΄κ³ , 변경될 수 μ—†μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ 포인터 μŠ€μŠ€λ‘œλŠ” λ³€κ²½λ˜κ³  λ‹€λ₯Έ ..
Β·C++/기타
ν”„λ‘œκ·Έλž˜λ°μ„ ν•˜λ‹€ 보면 2개의 λ³€μˆ˜μ— λŒ€ν•΄μ„œ μ„œλ‘œμ˜ 값을 κ΅ν™˜ν•΄μ•Ό ν•˜λŠ” κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€. swap ν•¨μˆ˜λ₯Ό μ“°λ©΄ νŽΈν•˜μ§€λ§Œ, 직접 효과λ₯Ό κ΅¬ν˜„ν•΄μ•Ό ν•  λ•Œλ„ (ν˜Ήμ‹œ?) μžˆμ„ 것 μž…λ‹ˆλ‹€. κ°€λ Ή a = 40, b = 30일 λ•Œ a = 30, b = 40으둜 λ§Œλ“œλŠ” κ²ƒμž…λ‹ˆλ‹€. μ €λ§Œ κ·ΈλŸ°μ§€ λͺ¨λ₯΄κ³˜μ§€λ§Œ, 항상 보쑰 λ³€μˆ˜λ₯Ό μ„ μ–Έν•΄μ„œ 이 방법을 ν•΄κ²°ν–ˆμ—ˆμŠ΅λ‹ˆλ‹€. int n 같은 λ³€μˆ˜μ— a λ‚˜ b 쀑 ν•˜λ‚˜λ₯Ό μ €μž₯ν•΄ 놓고, 순차적으둜 λ°”κΎΈλŠ” 것이죠. int a {40}; int b {30}; int n {}; n = a; a = b; b = n; cout
C++의 ν¬μΈν„°λŠ” Assignment Expressions (λŒ€μž… ν‘œν˜„μ‹) Arithmetic Expressions (μ‚°μˆ  ν‘œν˜„μ‹) Comparison Expressions (비ꡐ ν‘œν˜„μ‹) μ—μ„œ μ‚¬μš©μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€. 포인터에 λŒ€ν•œ λ‹€μ–‘ν•œ μ—°μ‚°(μ‚°μˆ )이 κ°€λŠ₯ν•©λ‹ˆλ‹€. λ‹€μŒμ€ 포인터에 적용 κ°€λŠ₯ν•œ λͺ‡κ°€μ§€ μ—°μ‚°λ“€μž…λ‹ˆλ‹€. (++) ν¬μΈν„°μ˜ 값을 μ¦κ°€μ‹œμΌœ λ°°μ—΄μ˜ λ‹€μŒ μš”μ†Œλ₯Ό κ°€λ₯΄ν‚€λ„둝 ν•©λ‹ˆλ‹€. int_ptr++; (--) ν¬μΈν„°μ˜ 값을 κ°μ†Œμ‹œμΌœ λ°°μ—΄μ˜ 이전 μš”μ†Œλ₯Ό κ°€λ₯΄ν‚€λ„둝 ν•©λ‹ˆλ‹€. int_ptr--; (+) ν¬μΈν„°μ˜ 값을 n * sizeof(type) 만큼 μ¦κ°€μ‹œν‚΅λ‹ˆλ‹€. int_ptr += n; or int_ptr = int_ptr + n; (-) ν¬μΈν„°μ˜ 값을 n * sizeof(type) 만큼 κ°μ†Œμ‹œν‚΅λ‹ˆλ‹€. i..
Chan Lee
'λΆ„λ₯˜ 전체보기' μΉ΄ν…Œκ³ λ¦¬μ˜ κΈ€ λͺ©λ‘ (16 Page)