처음에 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 |