본문 바로가기

IT 관련자료/C++

함수에서 값에의한 변수 전달 이해

처음에 java를 배울 때 혼란스러웠던 개념인데 c에서 메모리에 할당된다는 개념을 배우고 나니 확실하게 이해된다.

#include <iostream>

using namespace std;

void doSomething(int y)
{
    cout << "In func " << y << " " << &y << endl;
}

int main()
{
    
   
    doSomething(5);


    int x = 6;
    cout << "In main " << x << " " << &x << endl;

    //값에의한 전달에서는 x라는 변수가 전달되는 것이 아니라 x에 담겨있는 5라는 값만 전달된다.
    doSomething(x); // 여기서 x는 값만 전달되서 main에서의 x와 함수안에서의 x가 메모리 공간이 다름
    doSomething(x + 1); //이걸보면 값만 전달된다는 것이 당연하다고 생각할 수 있다.
    //그래서 doSomething 안에 있는 변수의 값만 메모리에서 위치가 동일

    return 0;
}

결과는 아래와같음.

00EFFBB4 << doSomething이라는 함수 안에서 할당받는 메모리공간

00EFFC88 << main에서 x라는 변수에 할당된 메모리공간

 

'IT 관련자료 > C++' 카테고리의 다른 글

스택과 힙  (0) 2022.02.21
함수의 오버로딩  (0) 2022.02.21
함수의 다양한 반환 값들  (0) 2022.02.18
참조에의한 인수전달  (0) 2022.02.18
std::vector 사용법  (0) 2022.02.18