CS Study/C++

[C++] [5] 함수 (Function)

23학번이수현 2024. 12. 20. 02:18

1. 함수(Function)

- 함수란 특정 작업을 수행하는 코드 집합으로 정의 가능하다.

- 다음과 같은 구성을 띄고 있다고 생각하면 된다.

int func(int x, int y){
}

 

- 여기서 int는 함수의 return type, func은 함수명, ()안의 변수는 매개 변수, {}는 함수 몸체이다.

1.1. 두 수를 곱하는 함수

- 간단한 예시로 두 수를 곱하는 함수를 C++로 작성해보자.

#include <iostream>

int multi(int x, int y){
    int result = x * y;
    return result;
}

int main(){
    int _multi = multi(2,3);
    std::cout << "result: " << _multi << std::endl;
    
    return 0;
}


----- Output -----
result: 6

 

1.2. 포인터를 매개변수로!

- 어떤 변수에 1을 더해주는 함수를 만들고 싶다고 생각해보자.

- 그럼 다음과 같이 작성할 거라고 생각이 들 것이다.

#include <iostream>

void add_1(int x){
    x = x + 1;
}

int main(){
    int n = 2;
    add_1(n);
    std::cout << "result: " << n << std::endl;
    
    return 0;
}



---------- Output ----------
result: 2

 

- 하지만 n의 값이 1이 증가하지 않고 그대로 2라는 것을 알 수 있다.

- 이 이유는 함수에서의 매개변수와 외부에서의 변수는 다른 메모리 주소를 가지고 있기 때문이다.

- 그래서 포인터로 같은 메모리 주소를 할당시켜주면 된다.

#include <iostream>

void add_1(int *x){
    *x = *x + 1;
}

int main(){
    int n = 2;
    add_1(&n);
    std::cout << "result: " << n << std::endl;
    
    return 0;
}


------------ Output ------------

result: 3

 

- 성공적으로 1이 더해진 모습을 볼 수 있다.