본문 바로가기
C++

[C++] 함수 완전 가이드: 선언, 정의, 호출까지 📚

by 다다면체 2025. 1. 5.
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
반응형