리터럴 문자열 및 함수 반환 값이 l값입니까, r값입니까?
리터럴 문자열이 l 값인지 r 값인지 궁금할 뿐입니다.다른 리터럴(int, float, char 등)은 l값입니까 r값입니까?
함수의 반환 값이 r값입니까?
어떻게 차이를 구별할 수 있습니까?
- 문자열 리터럴은 l 값이지만 변경할 수 없습니다.
- rvalue이지만 포인터이고 NULL이 아닌 경우 가리키는 개체는 lvalue입니다.
C 표준은 왼쪽과 오른쪽을 의미하는 원래 용어를 인식합니다.L = R
; 그러나 lvalue를 locator value로 생각하라고 되어 있는데, 대략적으로 개체의 주소를 얻을 수 있고 따라서 해당 개체가 위치를 가지고 있다는 것을 의미합니다.(C99의 6.3.2.1 참조).
마찬가지로 표준은 r값을 포기하고 int, char, flot 등의 리터럴을 포함한 사실상 모든 것인 "식의 값"을 사용합니다.또한 r값으로 수행할 수 있는 모든 작업을 l값으로도 수행할 수 있으므로 모든 l값을 r값으로 간주할 수 있습니다.
C에는 1.l value의 두 가지 표현식이 있습니다.l 값인 식을 할당의 왼쪽 또는 오른쪽으로 나타낼 수 있습니다. 2. r 값:r 값인 식을 할당의 오른쪽에 표시할 수 있지만 왼쪽에는 표시되지 않습니다.변수는 l 값이므로 할당의 왼쪽에 나타날 수 있습니다.숫자 리터럴은 r값이므로 할당할 수 없으며 왼쪽에 표시할 수 없습니다.다음은 유효한 문입니다. intg = 20. 그러나 다음은 유효한 문이 아니며 컴파일 시간 오류가 발생합니다. 10=20.
마이크로소프트에서 C++에 대한 정의가 있습니다.이 정의에 따르면, "hello world"라고 하는 문자 문자열은 lvalue인데, 이는 일시적이지 않고 일정하기 때문입니다.실제로 응용프로그램의 수명 동안 지속됩니다.
언급URL : https://stackoverflow.com/questions/2038414/are-literal-strings-and-function-return-values-lvalues-or-rvalues
'programing' 카테고리의 다른 글
스프링 3 / Postgre에서 행 삽입에서 자동 생성 키 가져오기SQL 8.4.9 (0) | 2023.09.24 |
---|---|
워드프레스에서 새 게시물을 작성할 수 없는 이유는 무엇입니까?경고: 라인 716에서 /public_html/wp-admin/includes/post.php의 빈 값으로 기본 개체를 만듭니다. (0) | 2023.09.24 |
모든 도커 컨테이너를 정지시키고 제거합니다. (0) | 2023.09.24 |
오류 1286(42000):알 수 없는 스토리지 엔진 '열 저장소' (0) | 2023.09.24 |
WooCommerce에 상품 설명을 위한 숏코드가 있나요? (0) | 2023.09.19 |