inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

홍정모의 따라하며 배우는 C언어

12.2 객체와 식별자, lvalue와 rvalue

12분 30초 쯤이 잘 이해가 안갑니다

146

강진성

작성한 질문수 21

1

"Lvalue가 refer된다는 것은 또 다른 이름처럼 사용된다라는 것이다"라는 것이 무슨 말인가요? 이미 선언된 변수에 어떤걸 대입하는건데 그냥 idenifier로써 작동하는 것이 아닌가요? 아 너무 헷갈리네요ㅠㅠ

c

답변 1

2

Soobak

안녕하세요? 질문&답변 도우미 Soobak 입니다.

 

저도 처음 공부할 때 이해에 힘들어했던 부분이네요!
충분히 헷갈리실 수 있는 내용이고, 점점 용어들에 익숙해지시면서 자연스럽게 이해가 되실거에요!

 

우선, Lvalue 는 메모리의 위치를 나타내는 표현식입니다. (해당 강의의 11:30 부분 경 참고)

여기서, 중요한 점은 Lvalue 가 단순히 값을 저장하는 것이 아니라, 메모리의 위치를 나타낸다는 점, refer 하고 있다는 점입니다.

 

"또 다른 이름처럼 사용된다" 는 것을 이 부분에 초점을 맞추어 접근해보시면 이해에 도움이 되실 것 같습니다.

(해당 강의 13:20 부분의 예제와 교수님 설명을 참고해보시면 더 좋을 것 같습니다.)

또한, int a = 10; int b = a; 와 같은 코드에서,
b = a 는, a 가 가리키는 메모리 위치(refer)의 값을 b 가 가리키는 메모리 위치(refer)에 복사하는 것입니다.

이 때, ab 는 각각 독립적인 메모리 위치를 가리키는 Lvalue 입니다.

따라서, 식별자(Identifier) 로써 작동한다고 이해하시기 보다는, "메모리 위치를 참조한다" 로 이해하시는 것이 더 정확합니다.

 

핵심은, Lvalue 는 단순히 변수의 이름이 아니라, 메모리 위치를 나타내는 표현식 이라는 점입니다.


예를 들어,
int a = 5; int* ptr = &a; 의 경우에서, a*ptr 은 같은 메모리 위치를 가리키는 서로 다른 방법(각각 또 다른 이름)이며, 둘 다 Lvalue 로 같은 메모리 위치를 refer 하고 있습니다.

Export template 안됨

1

36

2

완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.

1

59

3

main 함수에서 왜 int만 선언이 되는걸까요

1

58

2

8비트 2진수 변환시 왜 1을 더해야하나요?

1

56

2

혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?

1

50

1

프로토타입과 함수간의 인자 불일치

1

74

2

12.12 헤더 관련 질문

1

61

2

Visual Studio Community 2026 사용 문의

1

140

2

Q. 15:30, 부호가 있는 8비트 정수 질문

1

62

2

getchar(), putchar()

1

95

3

강의자리ㅛ

1

81

2

비주얼스튜디오코드로 공부해도 상관없나요?

1

115

2

소스파일안에 여러 파일

1

77

2

F5와 F7의 차이

1

80

2

c = TWO * (a+b); 에서 a와 b는?

1

61

2

; 세미콜론을 붙이는 기준에 문의

1

71

1

Step over 기능 문의

1

55

2

2.6 강의 따옴표 출력 규칙 문의

1

78

2

int main 함수 관련 오류 문의

1

70

2

13.4 words[0]

0

62

2

11.7 함수를 구현해 봤습니다.

1

63

2

11.6 직접 strcmp와 strncmp를 구현해 보았습니다.

1

66

2

11.6 my_strcat과 my_strncat을 구현해봤습니다.

1

54

2

11.6 fit_str함수를 구현해 봤습니다.

1

55

2