프로그래밍 언어/C & C++ 정리

임시 변수, 참조 매개변수, const

뽀또치즈맛 2023. 1. 21. 15:41

C++는 실제 매개변수와 참조 매개변수가 일치하지 않을 때 임시 변수를 생성할 수 있다.
최근의 C++는 매개변수가 const 참조일 경우에만 이것을 허용한다.
이것은 새로운 제약이다. C++가 어떤 경우에 임시 변수를 생성하는지, 그리고 const 참조의
경우에만 임시 변수 생성을 허용하는 이유를 알아보자.
먽, 임시 변수는 언제 생성되는 것일까? 참조 매개변수가 const일 경우,
컴파일러는 다음과 같은 두 가지 상황에서 임시 변수를 생성한다.

 

 

// 일반 매개변수와 참조 매개변수의 예시
double cube(double a);
double refcube(double& ra);

 

 

임시 변수란?

- 실제 매개변수와 참조 매개변수간에 데이터형이 일치하지 않을 경우 생성되는 변수이다.

- const 참조 데이터형의 매개변수일 경우에만 한정하여 임시 변수를 생성한다.

- 임시 변수는 함수가 호출되어 있는 동안에만 유지되며

그 후에는 컴파일러가 마음대로 제거할 수 있게된다.

 

 

puls

Lvalue 란?

lvalue 매개변수는 참조가 가능한 데이터 객체이다.
예를 들어 변수, 배열의 원소, 구조체의 멤버, 참조 또는 역참조 포인터는 lvalue이다.