삼항 조건 연산자와 그 결과 Lvalue 또는 Rvalue
삼항/조건 연산자('?:')는 선택을 위한 단축 구문을 제공합니다. 조건에 따른 두 가지 표현 중 하나입니다. 이 연산자의 결과 유형을 이해하는 것은 다양한 프로그래밍 작업에 매우 중요합니다.
Lvalue로서의 조건식
조건 연산자는 두 번째 및 세 번째 피연산자가 lvalue일 때 lvalue를 반환합니다. 같은 유형의. 이는 다음 코드에서 두 피연산자(x 및 y)가 모두 정수일 때 관찰됩니다.
int x = 1; int y = 2; (x > y ? x : y) = 100; // Assignment is allowed since the result is an lvalue
이 경우 조건식(x > y ? x : y)은 lvalue입니다. 100에 대한 후속 할당.
조건식 Rvalue
그러나 두 번째와 세 번째 피연산자의 유형이 다른 경우 조건식은 rvalue가 됩니다. 이는 다음 코드에서 분명하게 나타납니다.
int x = 1; long y = 2; (x > y ? x : y) = 100; // Error: Assignment is not allowed for rvalues
y 유형과 일치하도록 x를 암시적으로 long으로 변환하므로 조건식은 rvalue가 됩니다. rvalue는 수정할 수 없으므로 할당 작업이 실패합니다.
결과 유형 결정
조건식의 유형 및 값 범주는 컴파일 타임에 결정됩니다. 다음 규칙을 따릅니다.
이러한 규칙을 이해하면 삼항/조건 연산자를 효과적으로 사용할 수 있습니다.
위 내용은 삼항 연산자의 결과는 Lvalue입니까 아니면 Rvalue입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!