다루는 내용
- 대입 연산자
- l-value
대입연산자는 이항 연산자로 =, +=, -=, …이 있다.
대입 연산은 우항에 있는 값을 좌항에 있는 피연산자에 의해 관리되는 공간에 값 설정을 하는 연산이다.
이는 대입 연산자의 좌항에 오는 피연산자는 해당 표현을 위해 할당된 공간이 있어야 함을 의미한다.
이에 대입 연산자의 좌항에 오는 피 연산자를 C언어에서는 l-value라 부르고 있고 메모리 위치를 참조를 한다.
실제 대입 연산자의 좌항을 제외한 나머지 표현에서는 value를 의미하던 것이 대입 연산에서는 reference를 지향하고 있다는 것은 너무나 당연한 사실이라 그런지 아무런 언급을 하지 않는 경우가 많다. 하지만 이렇게 당연한 것을 이해하고 넘어가지 않을 경우에 value형식과 reference형식이 공존하는 언어에서 혼돈에 빠질 수도 있다.
(거의) 모든 언어에서 대입 연산자의 좌항은 같은 의미를 지니고 있기 때문에 어떠한 형식이 value형식인지 reference형식인지를 구분을 할 때에는 대입 연산자의 좌항을 제외한 표현에서 해당 형식이 value를 지향하는지 혹은 reference를 지향하는지를 가지고 판단을 한다.
Look & Feel & Think
또한, 좌항의 표현이 특정 배열을 의미할 때 해당 표현은 메모리 주소임을 의미하여 4바이트만 dump함을 숙지하자.
Look & Feel & Think
그리고 대입 연산은 모든 연산자 중에 우선순위가 제일 낮다는 것에 주의하자.
Look & Feel & Think
다음은 메뉴를 입력받아 'a'를 누르면 추가, 'd'를 누르면 삭제,...기능을 수행하는 것을 반복하되 'e'를 누르면 빠져나가기 위해 작성한 것이다. 무엇이 잘못된 것인지 보고 느끼고 생각해 보시라.
'언어 자료구조 알고리즘 > C 언어 문법' 카테고리의 다른 글
18. 기본 입출력 - 출력 (0) | 2009.08.19 |
---|---|
17.기본 입출력 개요 (0) | 2009.08.19 |
16. 지시/주소/인덱스/간접연산자 (0) | 2009.08.19 |
15. 비트/ 쉬프트 연산자 (0) | 2009.08.19 |
14. 비교/논리 연산자 (0) | 2009.08.19 |
12. 증감연산자 (0) | 2009.08.19 |
11. 산술 연산자 (0) | 2009.08.19 |
10. 연산자 (0) | 2009.08.19 |
9. 변수의 종류 (0) | 2009.08.19 |
8. 변수의 선언과 초기화 (5) | 2009.08.19 |