programing

리터럴 문자열 및 함수 반환 값이 l값입니까, r값입니까?

instargram 2023. 9. 24. 12:19
반응형

리터럴 문자열 및 함수 반환 값이 l값입니까, r값입니까?

  1. 리터럴 문자열이 l 값인지 r 값인지 궁금할 뿐입니다.다른 리터럴(int, float, char 등)은 l값입니까 r값입니까?

  2. 함수의 반환 값이 r값입니까?

어떻게 차이를 구별할 수 있습니까?

  1. 문자열 리터럴은 l 값이지만 변경할 수 없습니다.
  2. 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

반응형