본문 바로가기
Jaden's spectrum/📂 Programming Languages

[c++] 8. 함수

by JadenWe 2025. 3. 17.
반응형

1. 함수의 기본 구조

C++ 함수는 다음과 같은 구조를 가집니다.

반환형 함수이름(매개변수) {
    // 함수 내용
    return 반환값;
}

함수 선언과 정의

C++에서 함수를 사용하려면 선언(declaration)과 정의(definition)가 필요합니다.

  • 함수 선언: 함수의 원형(prototype)을 정의하며, 반환형과 매개변수를 명시합니다.
  • 함수 정의: 함수의 실제 동작을 구현합니다.

예제:

#include <iostream>
using namespace std;

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

int main() {
    int result = add(3, 5); // 함수 호출
    cout << "결과: " << result << endl;
    return 0;
}

// 함수 정의
int add(int a, int b) {
    return a + b; // 반환 값
}
결과: 8

위 코드에서 add 함수는 두 개의 정수를 받아 합을 반환합니다.

2. 반환 값(return value)

함수는 특정 작업을 수행한 후 값을 반환할 수 있습니다. return 키워드를 사용하여 값을 돌려줄 수 있으며, 반환형에 따라 다양한 값이 반환될 수 있습니다.

반환 값이 있는 함수

#include <iostream>
using namespace std;

// 정수형 반환 함수
int multiply(int a, int b) {
    return a * b;
}

int main() {
    int result = multiply(4, 6);
    cout << "곱셈 결과: " << result << endl;
    return 0;
}
곱셈 결과: 24

반환 값이 없는 함수 (void 함수)

반환할 값이 없는 경우 void 키워드를 사용합니다.

#include <iostream>
using namespace std;

// void 함수
void greet() {
    cout << "안녕하세요!" << endl;
}

int main() {
    greet(); // 함수 호출
    return 0;
}
안녕하세요!
 

3. 다양한 반환형 사용

double 반환

#include <iostream>
using namespace std;

double divide(double a, double b) {
    return a / b;
}

int main() {
    cout << "나눗셈 결과: " << divide(10.0, 2.0) << endl;
    return 0;
}
나눗셈 결과: 5

string 반환

#include <iostream>
#include <string>
using namespace std;

string getGreeting(string name) {
    return "Hello, " + name + "!";
}

int main() {
    cout << getGreeting("Alice") << endl;
    return 0;
}
Hello, Alice!

배열(포인터) 반환

함수에서 배열을 반환하는 경우, 배열의 주소를 반환해야 합니다.

#include <iostream>
using namespace std;

int* createArray() {
    static int arr[3] = {1, 2, 3};
    return arr;
}

int main() {
    int* ptr = createArray();
    cout << "배열 첫 번째 요소: " << ptr[0] << endl;
    return 0;
}
배열 첫 번째 요소: 1

⚠️ static 키워드를 사용해야 함수 종료 후에도 배열이 유지됩니다.

 

4. return의 다양한 활용

조건에 따른 반환

#include <iostream>
using namespace std;

int absolute(int num) {
    if (num < 0) {
        return -num;
    }
    return num;
}

int main() {
    cout << "절댓값: " << absolute(-10) << endl;
    return 0;
}
절댓값: 10

return으로 함수 종료

#include <iostream>
using namespace std;

void checkNumber(int num) {
    if (num < 0) {
        cout << "음수입니다." << endl;
        return; // 함수 종료
    }
    cout << "양수 또는 0입니다." << endl;
}

int main() {
    checkNumber(-5);
    checkNumber(10);
    return 0;
}
음수입니다.
양수 또는 0입니다.

 

 

 

 

 

[c++] 7. define & 하드코딩

C++을 포함한 프로그래밍에서는 유지보수성과 가독성을 높이기 위해 코드의 가변적인 값을 효율적으로 관리하는 것이 중요합니다. 이 과정에서 #define과 같은 매크로를 활용할 수 있으며, 반대로

clarelee.tistory.com

 

 

반응형