inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

12.2 객체와 식별자, lvalue와 rvalue

L-value와 Object에 대해 질문드립니다.

342

m1n_q

작성한 질문수 24

0

강의 16:40 쯤, 

L-value 는 Object다 라고 하신 부분에 관해 질문 드립니다.

Q1. Object는 메모리 공간 자체고,

L-value는 그 공간을 참조하는 expression이나, identifier라고 하신 설명과는 다른 것 같아서 질문 드립니다!

Q2. 또, arr[0] 이 object라고 하신 부분도,

arr[0] 이 어떠한 메모리 공간에 접근 가능하게 한다는 것은 알겠는데

위 질문과 같은 맥락으로 혼란이 있습니다. !

object가 메모리 공간 그 자체를 의미하는거라면 script 상에는 아예 존재하지 않는 것이 아닌가... 하는 질문입니다!


Q3. arr == &arr[0]이 메모리 주소값임에도 Object를 의미히지 않는 이유는 

"메모리 주소값" != "메모리 공간" 으로 받아들이면 될까요???

c

답변 2

2

안소

1. L-value 는 공간이라고도 말할 수 있겠고  expression이나, identifier 라고도 말할 수 있겠습니다. 예를 들어  int a = 2; 라는 식이 있다면 2 라는 데이터를 a 라는 공간에 집어 넣을 수 있겠죠. 그리고 우리는 a 라는 이름으로 그 공간을 참조할 수도 있고 a라는 이름을 바탕으로 이 공간과 다른 공간을 구분할 수도 있죠. 그래서 a 는 L-value 가 됩니다. 이런식으로 생각해주시면 될 것 같아요. 

2. 혹시 오브젝트를 메모리 공간이라고 말씀하신 부분이 어디쯤인지 알 수 있을까요? "공간" 그 자체를 오브젝트라고 하기보단 "공간을 자리잡고 있는, 메모리를 차지하고 있는, 실제로 존재하고 있는 어떤 것"을 오브젝트라고 표현하는 것이 더 자연스러울 것 같다고 저는 이렇게 이해하고 있어서요..! 아마 교수님께서도 제가 이해하고 있는 뜻으로 오브젝트가 공간이라고 말씀하신 것 같아요.  그리고 이 질문은 제가 이해하기가 조금 어렵네요 ㅠㅠ

3. 말그대로 집을 집주소와 같다고 말하지는 않듯이 주소는 그저 어떤 공간을 참조하는 이름일 뿐입니다. 근데 int* ptr 이런 포인터 변수(여담으로 포인터 변수도 L-value가 되겠네요. 데이터를 저장하는 공간이니까요)에다가 어떤 주소값을 저장중이라면 이떈 그 주소값 데이터를 오브젝트라고 표현할 수 있을 것 같아요.

arr 그 자체는 지난 답변에서도 말씀드렸듯이 첫번째 원소의 주소. 그 자체를 가리키며 뭔가 메모리를 차지하고 실존하고 있는 그 무언가는 아닙니다. 그래서 시스템상 &arr 는 그냥 arr 그 자체의 주소가 아닌 첫번째 원소의 주소 값을 나타냈었죠. 

0

m1n_q

Q2에 관해서 다시 말씀드리자면

음... 제가 강의를 보며 이해하기로는

말씀 하신대로 메모리 공간을 차지하는 어떤 것 = 오브젝트

expression, identifier등은 그 오브젝트의 이름표 ? 라는 느낌이었습니다!



그래서 arr[0]은 expression이고,

arr[0]의 값이 object인 것으로 이해했구요!

그래서 강의중 arr[0] 이 object다 ! 라고 하신 것에서 혼동이 있었습니다 !!

L-value가 object다 라는 표현도 마찬가지구요 ㅠㅠ


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

1

47

3

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

1

53

2

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

1

53

2

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

1

46

1

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

1

72

2

12.12 헤더 관련 질문

1

59

2

Visual Studio Community 2026 사용 문의

1

134

2

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

1

59

2

getchar(), putchar()

1

92

3

강의자리ㅛ

1

78

2

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

1

112

2

소스파일안에 여러 파일

1

74

2

F5와 F7의 차이

1

75

2

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

1

58

2

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

1

68

1

Step over 기능 문의

1

52

2

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

1

74

2

int main 함수 관련 오류 문의

1

67

2

13.4 words[0]

0

60

2

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

1

62

2

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

1

64

2

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

1

53

2

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

1

53

2

11.5 코드 구현

1

67

2