C++/Skill (기본지식, 모던C++)

기본지식 : 포인터.1) Call-by-Reference, Call-by-Value

신우섭 2020. 5. 24. 19:26

핵심

Call-by-Reference : 메모리에 담긴 실제 값이 아닌 주소값을 넘기는 것
Call-by-Value : 메모리에 담긴 실제 값을 넘기는 것

Call-by-Reference

Ex1

void function(int* a)
{
    a = 20; 
}

void main()
{
    int a = 10;
    function(&a);

    cout << a; // 결과 : 20
}

Ex2

void function(int& a)
{
    a = 30; 
}

void main()
{
    int a = 10;
    function(a); // 결과 : 30
}

Call-by-Value

void function(int a)
{
    a = 10; 
}

void main()
{
    int a = 20;
    function(a); // 결과 : 20;
}