inflearn logo
강의

Course

Instructor

Hong Jung-mo's C Programming: Learning by Doing

5.2 Assignment Operators and Some Terminology

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

58

gju043191359

5 asked

1

63강 강의 12분 쯤

L/R Value 에 대해 예시에서 설명해주셨습니다.

 

그 중 (a+b)는 임시 값이므로 R Value 라고 설명해주셨는데,

여전히 괄호 안의 a와 b 각각은 L value 라고 이해되는데 맞나요?

 

추가 질문으로 c = TWO * (a+b) 에서

우측의 TWO * (a+b) 역시 임시로 값들이 계산이 되고 나중에 c 라는 변수에 대입이 될 것인데

그렇다면 TWO * (a+b) 이것 또한 R value 라고 봐야 할 까요?

 

 

c

Answer 2

0

durams

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

이번 강의에서 소개된 개념은 Value category라고 하는 것인데요, 이름은 value category지만 사실 값을 분류하는 것이 아닌 expression (표현식)을 분류하는 개념입니다. 그러니 단일 키워드에 대해서만 적용되는 분류 기준이 아닌 것이죠.

  1. 괄호 안의 ab 각각은 lvalue가 맞습니다. ab라는 식별자는 변수로써 메모리를 점유하고 있기 때문입니다.

  2. TWO * (a + b)는 rvalue가 맞습니다. 변수 c에 담기는 것과 별개로, 해당 expression의 결과는 임시로 존재하는 rvalue입니다.

강의에서는 간단히 lvalue가 메모리를 차지하고 있는 객체라고 표현되었지만, 대부분의 경우에 맞는 설명입니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 커피는 마끼아또님.

L/R Value에 대한 질문을 주셨네요. 이 개념은 C언어와 같은 프로그래밍 언어에서 매우 중요한 부분입니다.

  1. (a+b) 안의 ab에 대한 질문:

    • 맞습니다. ab 각각은 L-value로 취급됩니다. L-value는 메모리 위치를 나타내며, 이 경우 ab는 각각 메모리에 할당된 변수입니다.
    • 반면, (a+b)는 두 L-value(ab)의 결과로 계산된 값이며, 이는 R-value로 취급됩니다. R-value는 실제 값 그 자체를 나타내며 임시적으로 생성됩니다.
  2. c = TWO * (a+b)에서의 R-value 여부:

    • TWO * (a+b)는 또한 R-value입니다. 여기서는 L-value인 ab를 사용하여 (a+b)를 계산하고, 그 결과에 TWO를 곱하는 연산을 수행합니다. 이 때 TWO * (a+b)의 결과는 R-value이고, 최종적으로 이 값이 c에 대입됩니다. 대입 후에 c는 L-value로 사용될 수 있습니다.

관련한 이해를 돕기 위한 내용으로 참고할 만한 게시물이 있습니다:
- C 언어에서 L-value와 R-value의 차이점 이해하기

이 설명이 도움이 되셨기를 바랍니다. 추가적으로 궁금한 부분이 있다면, 언제든지 질문해 주세요. 😊

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

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

1

43

3

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

1

51

2

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

1

52

2

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

1

46

1

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

1

72

2

12.12 헤더 관련 질문

1

59

2

Visual Studio Community 2026 사용 문의

1

132

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

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

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

66

2

C언어 엔터

1

58

2