Relational Expression
관계 표현식
- 값을 서로 비교하는 Relational Operator(관계 연산자)를 통한 연산이 포함되는 표현식이다.
- 관계 연산의 결과값은 오직 True, False 두 가지 밖에 없다. (False = 0, True = 0 이외의 값)
- C++에서는 6개의 관계 연산자들을 제공하며, 오직 수를 비교하는 데에만 사용할 수 있다.
- 문자와 string 클래스에도 관계 연산을 수행할 수 있다.
(문자들은 ASCII Code에 의해 자연수에 대응되기 때문이며, string 클래스에 연산자 오버로딩이 되어있기 때문이다.)
- C 스타일 문자열에는 관계 연산자들을 사용할 수 없다.
(C 스타일 문자열은 주소로 처리되기 때문이다. 이에 대한 대책으로 <cstring>헤더파일의 strcmp() 를 제공한다.)
Operator | Function |
<< | 작다 |
<= | 작거나 같다 |
== | 같다 |
!= | 같지 않다 |
> | 크다 |
>= | 크거나 같다 |
Usage
- 관계 연산자는 산술 연산자보다 우선순위가 낮다.
x + 3 > y - 2
// 위 표현식은 아래와 같이 해석할 수 있다.
(x + 3) > (y - 2)
strcmp(A, B)
- String Compare 의 약자이다.
- 두 개의 매개변수로 포인터, 문자열 상수, 문자 배열의 이름 등을 받을 수 있다.
- 두 문자열이 같다면 0을 리턴한다.
- System Collating Sequence(시스템 조회 순서 = 알파벳 순서) 상에서 A가 B보다 앞에 오면 음수를 리턴,
A가 B보다 뒤에 오면 양수를 리턴한다.
(이 점을 이용해서 문자열 간에 ==연산이나 !=연산을 간접적으로 구현할 수 있다.)
+ ASCII Code 상에서 대문자가 소문자보다 코드가 낮다. (우선순위가 높다.)