조건식 연산자

C가 하나의 삼항 연산자: 조건식 연산자 (? :).      

구문

  • 조건식:
    논리적 OR 식

    논리적 OR 식 ? :: 조건식

해당 논리적 OR 식 정수 계열, 부동, 또는 포인터 형식이 있어야 합니다.먼저 그 동일성을 0으로 계산 됩니다.시퀀스 위치가 오는 논리적 OR 식.피연산자의 평가 다음과 같이 진행 됩니다.

  • 경우 논리적 OR 식 0으로 같지 않은 평가 됩니다.식의 계산 결과 비 단말 이름으로 지정 됩니다 .(즉, 경우에 평가 됩니다 논리적 OR 식 마찬가지입니다.)

  • 경우 논리적 OR 식 0 이면 조건식 평가 됩니다.값은 식의 결과 조건식.(즉, 조건식 경우에 평가 됩니다 논리적 OR 식 은 false입니다.)

이때 중 하나 또는 조건식 계산, 있지만 않는 두입니다.

조건부 연산의 결과 유형을 형식에 따라 달라 집니다를 또는 조건식 같이 피연산자:

  • 경우 또는 조건식 계열 또는 부동 형식 (해당 형식이 될 수 있습니다 다른), 연산자는 일반적인 산술 변환이 수행 됩니다.결과 형식은 형식 피연산자의 변환 후입니다.

  • 두 경우 조건식 같은 구조체, 공용 구조체 또는 포인터 형식, 구조체, 공용 구조체 또는 포인터 형식이 같은 결과의 형식입니다.

  • 형식 피연산자가 모두 있는 경우 void를 입력 하 게 됩니다 void.

  • 피연산자 중 하나가 모든 종류의 개체에 대 한 포인터가 고 다른 피연산자에 대 한 포인터입니다 경우 void, 포인터를 개체 포인터 변환 됩니다 void 및 결과에 대 한 포인터입니다 void.

  • 두 경우 또는 조건식 에 대 한 포인터가 고 다른 피연산자 상수 식 값이 0, 결과의 형식은 포인터 형식입니다.

한정자가 입력에 대 한 포인터 형식 비교에 (const 또는 volatile) 형식의 포인터 사항은 중요 하지만 결과 형식 한정자 조건부의 두 구성 요소에서 상속 합니다.

예제

다음 예제에서는 조건부 연산자의 사용을 보여줍니다.

j = ( i < 0 ) ? ( -i ) : ( i );

절대 값을 지정 하는이 예제 i 에 j.경우 i 0 보다 작은 -i 할당 된 j.경우 i 는 0 보다 크거나 i 할당 된 j.

void f1( void );
void f2( void );
int x;
int y;
    .
    .
    .
( x == y ) ? ( f1() ) : ( f2() );

이 예제에서는 두 개의 함수 f1 및 f2, 및 두 변수 x 및 y, 선언 됩니다.두 변수는 함수 값,이 경우 프로그램에서 나중에 f1 라고 합니다.그렇지 않으면 f2 라고 합니다.

참고 항목

참조

조건부 연산자:? :