C++

복습) 임시 변수,레퍼런스(reference)

Nin 2020. 12. 17. 18:04
int Plus(int _Left, int _Right)
{
   return 10;
}

int main()
{
   Plus(10, 20) + 10;
}

위의 코드는 아무 문제 없이 실행이 가능하다.

Plus함수에서 리턴되는 값은 int 이며 int에 + 10을 실행하기때문에

문제가 없다. 여기서는 임시변수,임시반환값이 사용된다.

Plus(10,20)에서는 10에 4바이트 20에 4바이트 임시변수 int의 4바이트

12바이트가 사용되는 것이다.

그렇기 때문에 전체적으로 본다면 int(Plus(10,20)) 이렇게 볼수있다.

int Func(int _Value)
{
   _Value = 20;
   return Value;
}

int main()
{
   int Number = 0;
   Func(Number);
}

위와 같은 코드를 실행했을때 Number가 Func 함수에 들어가서

실행되서 나온다고 Number의 값은 20으로 바뀌지 않는다.

int A = Func(Number); //가정

쉽게 가정하면 A(가정)라는 임시변수가 생기고 거기의

값이 20으로 return되서 나오는거라고 생각할수있다.

임시변수의 이름은 어떤 이름으로 생성되는지 모른다.

 

레퍼런스와 포인터는 기계어로 번역해보면

둘의 동작은 완전히 같고 둘다 주소값 8바이트를 사용한다.

레퍼런스를 반환해주며 8바이트를 사용한다.