조건부 연산자:? :

expression ? expression : expression

설명

조건 연산자 (? :) (세 개의 피연산자가 사용 됨)는 삼항 연산자입니다.조건 연산자는 다음과 같이 작동합니다.

  • 첫 번째 피연산자를 암시적으로 변환 됩니다 bool.계산 됩니다 및 계속 하기 전에 모든 파생 작업이 완료 됩니다.

  • 첫 번째 피연산자가 계산 되는 경우 true (1), 두 번째 피연산자가 계산 됩니다.

  • 첫 번째 피연산자가 계산 되는 경우 false (0), 세 번째 피연산자가 계산 됩니다.

조건부 연산자의 결과 관계 없이 피연산자는 계산 되지 결과입니다-두 번째 또는 세 번째.마지막 두 피연산자 중 하나만 조건부 식에서 계산 됩니다.

조건부 식 오른쪽에서 왼쪽으로 연관성이 있습니다.첫 번째 피연산자 여야 합니다 정수 계열 또는 포인터 형식입니다.두 번째 및 세 번째 식에 다음 규칙을 적용 합니다.

  • 두 식이 모두 동일한 종류의 경우 형식에 발생 합니다.

  • 두 식을 산술 또는 열거형 형식의 일반적인 산술 변환이 있는 경우 (설명 산술 변환) 공용 형식으로 변환할 수행 됩니다.

  • 두 식이 모두 포인터 형식의 경우 또는 한 포인터 형식을 다른 0으로 계산 되는 상수 식입니다 경우 공용 형식으로 변환할 포인터 변환이 수행 됩니다.

  • 두 식이 모두 참조 형식의 경우, 일반 형식으로 변환할 참조 변환이 수행 됩니다.

  • 두 식이 모두 void 형식인 경우 공용 형식을 입력 void입니다.

  • 두 식이 모두 지정 된 클래스 형식인 경우 해당 클래스 형식 공통입니다.

앞의 목록에 두 번째 및 세 번째 피연산자의 모든 조합은 사용할 수 없습니다.결과의 형식은 공용 형식 이며 모두의 두 번째 및 세 번째 피연산자는 같은 유형을 모두 l-value입니다 경우는 l-값을이.

예제

// expre_Expressions_with_the_Conditional_Operator.cpp
// compile with: /EHsc
// Demonstrate conditional operator
#include <iostream>
using namespace std;
int main() {
   int i = 1, j = 2;
   cout << ( i > j ? i : j ) << " is greater." << endl;
}

참고 항목

참조

C + + 연산자

연산자 우선 순위 및 결합성

개념

조건식 연산자