Programming Language/C++

[C++]함수의 파라미터

lingk 2020. 10. 17. 13:58

1. value

void f(int n){
    n = n + 10;
}

int main(){
    int x = 3;
    f(x);
    cout << x << endl;
}

Output:3

파라미터 x는 함수 f()가 실행되면 컴파일러는 메모리에 x의 복사본을 만들기 때문에, 메모리 낭비❗️

 

2. reference

void f(int& n){
    n = n + 10;
}

int main(){
    int x = 3;
    f(x);
    cout << x << endl;
}

Output:13

value 파라미터의 단점 제거해주고, 값 자체의 수정이 가능하다❗️

 

3. const reference

void f(const int& n){
    n = n + 10; // Error: assignment of read-only reference  ‘n’
}

int main(){
    int x = 3;
    f(x);
    cout << x << endl;
}

Output:error

reference 파라미터의 장점을 갖고, 프로그래머가 값을 수정하고 싶지 않을 때 사용한다❗️

 

 

 

 

 

stackoverflow.com/questions/2627166/difference-between-const-reference-and-normal-parameter

반응형

'Programming Language > C++' 카테고리의 다른 글

[C++] 문자열 정리  (0) 2022.03.22