본문 바로가기
프로그래밍/C++

[C++] 3. C++의 "함수"

by iwbap 2024. 6. 14.
728x90

C++ 학습: 함수

함수는 코드의 재사용성과 가독성을 높이는 중요한 개념입니다. 이번 글에서는 함수 정의와 호출, 반환값과 매개변수, 그리고 재귀 함수에 대해 알아보겠습니다.


1. 함수 정의와 호출: 함수 선언과 정의, 호출 방법

함수 정의는 함수의 이름, 반환형, 매개변수 목록, 그리고 함수가 수행할 작업을 지정하는 것입니다. 함수 호출은 정의된 함수를 실제로 사용하는 것입니다.

 

함수 정의의 기본 구조

[cpp]
 
반환형 함수이름(매개변수 목록) {
    // 함수가 수행할 작업
    return 반환값;
}
 
 

함수 선언 : 함수를 정의하기 전에 함수의 반환형, 이름, 매개변수 목록을 선언하여 컴파일러에게 함수의 존재를 알립니다.

[cpp]
 
#include <iostream>
using namespace std;

// 함수 선언
void sayHello();
int add(int a, int b);

int main() {
    // 함수 호출
    sayHello();
    int result = add(3, 4);
    cout << "3 + 4 = " << result << endl;
    return 0;
}

// 함수 정의
void sayHello() {
    cout << "Hello, World!" << endl;
}

int add(int a, int b) {
    return a + b;
}
 

위의 예제에서 sayHello 함수는 반환형이 void이며 매개변수가 없습니다. add 함수는 두 개의 정수 매개변수를 받아 그 합을 반환합니다. main 함수에서 이 두 함수를 호출하여 사용합니다.


2. 반환값과 매개변수: 함수의 반환형과 인자

함수는 호출된 곳으로 값을 반환할 수 있으며, 호출 시에 필요한 데이터를 매개변수를 통해 전달받을 수 있습니다.

 

 

반환값이 있는 함수의 예제

 

[cpp]

 

#include <iostream>
using namespace std;

int multiply(int a, int b) {
    return a * b; // 두 정수를 곱하여 반환
}

int main() {
    int result = multiply(5, 6); // 함수 호출 및 반환값 저장
    cout << "5 * 6 = " << result << endl;
    return 0;
}

 

위의 예제에서 multiply 함수는 두 개의 정수형 매개변수를 받아 그들의 곱을 반환합니다.

 

 

매개변수가 있는 함수의 예제

[cpp]
 
#include <iostream>
using namespace std;

void greet(string name) {
    cout << "Hello, " << name << "!" << endl;
}

int main() {
    greet("Alice"); // 함수 호출
    greet("Bob");   // 함수 호출
    return 0;
}
 

위의 예제에서 greet 함수는 문자열 매개변수를 받아 그 이름을 포함한 환영 메시지를 출력합니다.


3. 재귀 함수: 자기 자신을 호출하는 함수

재귀 함수는 함수가 자기 자신을 호출하는 함수입니다. 재귀 함수는 반복적인 작업을 수행할 때 유용하며, 특히 알고리즘 문제 해결에 자주 사용됩니다. 그러나 종료 조건을 잘 설정하지 않으면 무한 루프에 빠질 수 있습니다.

 

 

재귀 함수의 예제

[cpp]
 
#include <iostream>
using namespace std;

// 팩토리얼을 계산하는 재귀 함수
int factorial(int n) {
    if (n <= 1) {
        return 1; // 종료 조건
    } else {
        return n * factorial(n - 1); // 재귀 호출
    }
}

int main() {
    int number = 5;
    int result = factorial(number); // 함수 호출
    cout << "Factorial of " << number << " is " << result << endl;
    return 0;
}
 

위의 예제에서 factorial 함수는 입력된 정수 n의 팩토리얼을 계산합니다. n이 1 이하일 때 1을 반환하고, 그렇지 않으면 자기 자신을 호출하여 n * factorial(n - 1)을 계산합니다.

재귀 함수를 사용할 때는 항상 종료 조건을 명확하게 설정하여 무한 루프를 방지해야 합니다.


이번 글에서는 C++의 함수에 대해 알아보았습니다. 함수 정의와 호출, 반환값과 매개변수, 재귀 함수를 이해하고 활용하는 것은 C++ 프로그래밍의 중요한 부분입니다. 다음 단계에서는 배열과 문자열에 대해서 학습을 해보세요. Happy Coding!

728x90