Records rather than Memories

[C++] 변수의 초기화와 할당 본문

Software/C

[C++] 변수의 초기화와 할당

Downer 2019. 12. 28. 22:08

프로그래밍에서 가장 기초가 되는 변수(variables)의

기화(initialization)와 할당(assignment)에 대해 알아보자.

컴퓨터 내에서 관점에서 보면 변수는 RAM이라는 메모리에서 특정 위치에 할당된다.

 

 

변수

 

- 변수를 만들기 위해 가장 먼저 정의가 필요한데 다음과 같이 선언함으로써 이루어진다.

1
int x;
cs

변수 x를 정수 값을 가지는 변수로 정의했다.

다음 명령문이 실행되면 변수 x에 특정한 메모리 위치가 지정되고 표현식이나 명령문에서 변수 x가 필요할 때마다 해당 특정 메모리 위치를 참조할 것이다.

 

1
= 10;
cs

 

그리고 '='를 통해 할당을 한다.

다음 명령문이 실행되면 앞서 지정한 메모리 위치에 10이라는 값을 입력하게 된다.

 

 

 

L-value, R-value

 

대입연산자(=)를 기준으로 습관처럼 왼쪽은 변수명 오른쪽은 값을 작성한다. 따라서 왼쪽에 위치하면 L-value 오른쪽에 위치하면 R-value라고 생각할 수 있다. 하지만 해당 구조를 뜯어보면 L-value는 메모리상에 주소를 가진 값으로 지속된 주소를 가지기 때문에 변수가 되고 반면 R-value는 주소와 관련이 없는 값으로 표현식이 종료되면 존재하지 않는 임시적인 값이다.

 

1
= x + 1;
cs

 

일반적인 변수의 초기화와 할당은 간단하지만 다음과 같은 경우는 조금 헷갈린다.

다음 예제에서 R-value는 x가 가진 값을 생성하는 x와 그 값에 1을 더한 값이 된다.

 

 

 

초기화

변수는 정의한 후 = 오른쪽에 값을 할당함으로써 초기화할 수 있다.

 

1
int x = 10;
cs

 

 

Comments