C 관계 및 같음 연산자

이진 관계형 연산자와 같음 연산자는 첫 번째 피연산자와 두 번째 피연산자를 비교하여 지정된 관계의 유효성을 테스트합니다. 테스트된 관계가 true이면 관계식 결과는 1이고, 테스트된 관계가 false이면 결과는 0입니다. 결과의 형식은 int입니다.

구문

relational-expression:
shift-expression

relational-expression < shift-expression

relational-expression > shift-expression

relational-expression <= shift-expression

relational-expression >= shift-expression

equality-expression:
relational-expression

equality-expression == relational-expression

equality-expression != relational-expression

관계형 연산자와 같음 연산자는 다음 관계를 테스트합니다.

연산자 테스트되는 관계
< 첫 번째 피연산자가 두 번째 피연산자보다 작음
> 첫 번째 피연산자가 두 번째 피연산자보다 큼
<= 첫 번째 피연산자가 두 번째 피연산자보다 작거나 같음
>= 첫 번째 피연산자가 두 번째 피연산자보다 크거나 같음
== 첫 번째 피연산자가 두 번째 피연산자와 같음
!= 첫 번째 피연산자가 두 번째 피연산자와 같지 않음

위 목록에 있는 처음 네 연산자의 우선 순위가 같음 연산자(==!=)보다 높습니다. C++ 연산자의 우선 순위와 결합성 표에서 우선 순위 정보를 참조하세요.

피연산자는 정수 계열, 부동 또는 포인터 형식일 수 있습니다. 피연산자의 형식은 서로 다를 수 있습니다. 관계형 연산자는 정수 계열 및 부동 형식 피연산자에 대한 일반적인 산술 변환을 수행합니다. 또한 관계형 연산자와 같음 연산자에서 다음과 같은 피연산자 형식의 조합을 사용할 수 있습니다.

  • 모든 관계형 연산자나 같음 연산자의 피연산자는 둘 다 동일한 형식에 대한 포인터일 수 있습니다. 같음(==) 및 같지 않음(!=) 연산자의 경우 비교의 결과는 두 개의 포인터가 동일한 메모리 위치를 가리키는지 여부를 나타냅니다. 다른 관계형 연산자(<, >, <= 및 >=)의 경우 비교의 결과는 가리킨 개체에 대한 두 메모리 주소의 상대적 위치를 나타냅니다. 관계형 연산자는 오프셋만 비교합니다.

    포인터 비교는 같은 개체의 부분에 대해서만 정의됩니다. 포인터가 배열의 멤버를 참조하는 경우 비교는 해당 아래 첨자의 비교와 동일합니다. 첫 번째 배열 요소의 주소는 마지막 요소의 주소보다 "작습니다." 구조체의 경우 나중에 선언된 구조체 멤버에 대한 포인터는 구조체에서 이전에 선언된 멤버에 대한 포인터보다 "큽니다." 같은 공용 구조체의 멤버에 대한 포인터는 동일합니다.

  • 포인터 값을 상수 값 0과 비교하여 같은지(==) 또는 같지 않은지(!=)를 확인할 수 있습니다. 값이 0인 포인터를 "null" 포인터라고 합니다. 즉, 이러한 포인터는 유효한 메모리 위치를 가리키지 않습니다.

  • 같음 연산자는 관계형 연산자와 동일한 규칙을 따르지만 추가 가능성을 허용합니다. 포인터를 값이 0인 상수 정수 식과 비교하거나 void에 대한 포인터와 비교할 수 있습니다. 두 포인터가 모두 null 포인터인 경우는 동일한 것으로 비교됩니다. 같음 연산자는 세그먼트와 오프셋을 모두 비교합니다.

예제

아래 예제에서는 관계형 연산자와 같음 연산자를 보여 줍니다.

int x = 0, y = 0;  
if ( x < y )  

xy가 같기 때문에 이 예제의 식은 0 값을 생성합니다.

char array[10];  
char *p;  

for ( p = array; p < &array[10]; p++ )  
    *p = '\0';  

이 예제에서는 array의 각 요소를 null 문자 상수로 설정합니다.

enum color { red, white, green } col;  
   .  
   .  
   .  
   if ( col == red )  
   .  
   .  
   .  

이러한 문은 col 태그를 사용하여 color이라는 열거형 변수를 선언합니다. 언제든지 변수는 정수 값 0, 1 또는 2를 포함할 수 있으며, 이러한 값은 열거형 집합 color의 요소 중 하나인 빨간색, 흰색 또는 녹색을 각각 나타냅니다. if 문이 실행될 때 col에 0이 포함되어 있는 경우 if에 종속된 모든 문이 실행됩니다.

참고 항목

관계형 연산자: <, >, <= 및 >=
같음 연산자: == 및 !=