참조 개요 & 특징 펼치기

값에 의한 호출 (call by value) Pointer 사용 : X

<aside> 💡 함수의 매개변수에 그냥 변수를 넣었을 경우

</aside>

C / Java / C# 전부 동일함


main() 함수 내부에서 sawp()함수를 이제 호출시키면, 
sawp()이 끝나고 다시 main()함수로 돌아겠죠?

sawp()함수를 호출할땐 main()함수와는 다른 공간에 위치한 스택을 쓰고, 
sawp()함수가 종료되면 sawp()이 사용했던 메모리 공간을 다 버려버리고 
다시 아래쪽의 main()의 스택 값으로 돌아옴.

Untitled

Untitled

Untitled

Untitled

값 vs 참조에 의한 호출 비교!

<aside> 💡 포인터를 붙이냐 안붙이느냐에 따라 구분된다

</aside>

<aside> 💡 C & C++ 는 독특하다…

왜? 포인터가 아닌 구조체가 들어와도 똑같이 동작함

즉, Pointer 가 있느냐 없느냐 만으로도

값에 의한 호출인지

참조에 의한 호출인지 알 수 있다!


C / C++ 값에 의한 호출은 모든 타입에 똑같이 동작함

오브젝트를 불러와도 포인터를 붙이지 않았다면, 값에 의한 호출이 가능하다.

이는 곧 호출한 함수 내부에서만 그 값들이 변한다는 의미이다.

</aside>

C & C++ 에서 구조체의 값에 의한 호출일때


Untitled

Untitled

C & C++ 에서 구조체의 참조에 의한 호출일때


Untitled

Untitled