728x90
반응형
안녕하세요! 오늘은 C++ 함수의 모든 것을 파헤쳐볼 거예요. 😄 함수는 코드의 재사용성을 높이고 프로그램을 더 체계적으로 구성할 수 있도록 도와줍니다. 그럼 시작해볼까요? 🚀
반응형
1 함수의 기본 구조 이해하기 🏗️
함수는 특정 작업을 수행하는 코드 블록이에요. 선언, 정의, 호출의 세 가지로 구성됩니다.
(1) 함수 선언
함수의 이름과 매개변수, 반환형을 컴파일러에 알려줍니다.
📌 형식
반환형 함수이름(매개변수);
📌 예제
int add(int a, int b);
(2) 함수 정의
함수의 실제 동작을 구현합니다.
📌 형식
반환형 함수이름(매개변수) {
// 함수 동작 구현
}
📌 예제
int add(int a, int b) {
return a + b;
}
(3) 함수 호출
정의된 함수를 실행합니다.
📌 예제
int result = add(3, 5);
std::cout << "Result: " << result << std::endl;
2 매개변수 전달 방식 📨
함수에 값을 전달하는 방법에는 두 가지가 있습니다.
(1) 값 전달
매개변수로 값을 복사하여 전달합니다. 원본 데이터는 변경되지 않습니다.
📌 예제
void printValue(int x) {
x = 10;
std::cout << "x: " << x << std::endl;
}
int main() {
int num = 5;
printValue(num);
std::cout << "num: " << num << std::endl;
return 0;
}
(2) 참조 전달
원본 데이터를 직접 참조하여 전달합니다. 데이터 수정이 가능합니다.
📌 예제
void doubleValue(int& x) {
x *= 2;
}
int main() {
int num = 5;
doubleValue(num);
std::cout << "num: " << num << std::endl;
return 0;
}
3 재귀 함수 활용하기 🔄
재귀 함수는 함수가 자기 자신을 호출하는 형태입니다. 주로 반복 작업을 간결하게 표현할 때 사용합니다.
(1) 기본 구조
📌 예제
int factorial(int n) {
if (n <= 1) return 1;
return n * factorial(n - 1);
}
int main() {
int result = factorial(5);
std::cout << "5! = " << result << std::endl;
return 0;
}
📌 코드 설명
- factorial(5)는 5 * 4 * 3 * 2 * 1의 결과를 반환합니다.
- 종료 조건(if (n <= 1))이 없으면 무한 루프에 빠질 수 있으니 주의하세요!
4 함수 오버로딩 🧩
함수 이름은 같지만 매개변수의 타입이나 개수가 다른 여러 함수를 정의할 수 있습니다. 📌 예제
void print(int x) {
std::cout << "정수: " << x << std::endl;
}
void print(double x) {
std::cout << "실수: " << x << std::endl;
}
void print(std::string x) {
std::cout << "문자열: " << x << std::endl;
}
int main() {
print(10);
print(3.14);
print("Hello");
return 0;
}
5 마무리 🎉
함수는 프로그램을 더 효율적이고 체계적으로 만드는 데 필수적인 도구예요. 이제 여러분은 함수 선언, 정의, 호출뿐만 아니라 매개변수 전달 방식과 재귀 함수까지 마스터했어요. 꾸준히 연습하며 함수 활용 능력을 키워보세요. 😊
728x90
반응형
'C++' 카테고리의 다른 글
[C++] 객체 지향 프로그래밍 마스터하기: 클래스와 객체의 모든 것! ✨ (0) | 2025.01.06 |
---|---|
[C++] 배열과 포인터 완벽 이해하기: 차이점과 사용법 🔍 (0) | 2025.01.06 |
[C++] 프로그램 흐름 제어: 조건문과 반복문 제대로 쓰기 🔄 (0) | 2025.01.04 |
[C++] 데이터 타입 완전 정복! 기본부터 마스터하기 🛠️ (1) | 2025.01.03 |
[C++] 첫 번째 프로그램 작성하기: 컴파일부터 실행까지 🚀 (1) | 2025.01.03 |