L-value와 R-Value 식

메모리 위치를 참조 하는 식은 식 "l 값" 이라고 합니다.L-value는 저장소 영역 "로케이터" 값 또는 등호 왼쪽에 표시 될 수 있음을 하는데 이라는 의미는 "왼쪽된" 값을 나타냅니다 (=).L-value는 식별자입니다.

수정할 수 있는 위치를 참조 하는 식 "수정 가능한 l-value입니다." 라고 합니다. L-value는 수정할 수 있는 배열 형식, 형식, 또는 가질 수 없습니다는 const 특성입니다.구조체와 공용 구조체를 수정할 수 있는 l 값에 대 한 이러한 모든 멤버와 없어야 있는 const 특성입니다.식별자의 이름을 동안 해당 변수 값을 해당 위치에 저장 된 값의 저장소 위치를 나타냅니다.

식별자 l-value는 수정할 수 있는 메모리 위치를 참조 하 고 산술, 구조체, 공용 구조체, 포인터의 형식인 경우입니다.예를 들어, 경우 ptr 다음 저장소 영역에 대 한 포인터입니다 *ptr 는 수정할 수 있는 l-저장소 영역을 지정 하는 값이 ptr 점입니다.

아래의 C 식을 l-value 식 수 있습니다.

  • 식별자의 정수 계열, 부동, 포인터, 구조체 또는 공용 구조체 유형

  • 아래 첨자 () 식 배열에 계산 되지 않습니다.

  • 구성원 선택 식 (-> 또는 .)

  • 단항 간접 (*) 식 배열을 참조 하지 않습니다.

  • 괄호 안의 식을 l 값

  • A const 개체 (수정할 수 없는 l-값)

용어 "r-value" 식의 값에 설명 하 고는 l-값을 구분 하기 위해 사용 합니다.모든 l-value r 값 이지만 모든 r 값은 l-value입니다.

Microsoft 전용

Microsoft C 개체의 크기는 캐스팅을 통해 kashida 확장 되는 캐스트의 l 값 l-value로 사용할 수 있습니다는 ANSI C 표준의 확장을 포함 합니다.(참조 하십시오 형식 캐스트 변환 에 대 한 자세한 내용은.) 다음 예제에서는이 기능을 보여 줍니다.

char *p ;
short  i;
long l;

(long *) p = &l ;       /* Legal cast   */
(long) i = l ;          /* Illegal cast */

Microsoft 확장을 사용 하는 Microsoft C의 기본이입니다./Za 컴파일러 옵션을 사용 하 여 이러한 확장을 사용 하지 않도록 설정 합니다.

Microsoft 특정 끝

참고 항목

개념

피연산자와 식