void Swap(int& L, int& R);
void main(void)
{
Swap(20, 30);
}
Call by Reference 함수에 20, 30같은 정수 리터럴값을 넣으면 컴파일이 되지 않는다.
그렇다고 정수 리터럴값이 메모리에 안잡히는가? (X)
- "코드" 섹션에 잡힌다 : 메모리 주소를 명시적으로 지정할 필요 없고 컴파일러와 운영체제가 관리하는 영역
코드 섹션의 이웃들 : 상수, 리터럴값, 실행코드, 테이블 값
* 다음 행으로 넘어가면 존재하지 않는다.(재참조 불가능)
* 그럼 const는 어디 잡히는데 ?
: 명시되어있지 않아서 컴파일러에따라 다를 수 있지만 대부분 data영역
대부분의 R-Value : 데이터 섹션
데이터 섹션은 세그먼트(segment) 중 하나이며, 초기화된 전역 변수, 정적 변수, 정수형 상수, 문자열 리터럴 등을 포함합니다. 이러한 데이터들은 실행 시간 중 변경되지 않는다.