본문 바로가기
프로그래밍/c언어 기초공부

[C언어 기초-06] 관계(비교) 연산자

by 졸린이 2021. 8. 18.
반응형

관계연산자

수식과 수식사이의 대소, 동등, 관계를 비교하는 이항연산자이다.

수식의 결과는 참, 거짓이 나오는데 C언어에서는 참이면 1, 거짓은 0이 나온다.

주로 다른 언어에서는 true false값이 나온다.

 

주로 if문이나 while문의 조건식으로 사용한다.

관계 연산자에는

 

> , <, >=, <=, ==, !=

이렇게 있는데 >. <. >=, <= 는 '크다, (왼쪽)보다 크다, 작다, 크거나 같다, 작거나 크다' 로 

흔히 수학시간에 배운 개념 그대로 사용하면 된다.

 

==는 대입연산자 =와는 다르게 두 항이 같은가? 라는 의미로 같으면 1(참)을 도출한다.

!=는 같지 않다는 의미로 두 항이 다를 때 1(참)을 도출한다.

1	#include<stdio.h>
2 
3	main() {
4		int a = 2, b = 5, c = 4;
5
6		printf("%d + 2 > %d = %d\n", a, b, a + 2 > b);
7		printf("%d + (2 > %d) = %d\n", a, b, a + (2 > b));
8		printf("%d < %d = %d\n", c, a, c < a);
9		printf("%d <= %d = %d\n", a, b, a <= b);
10		printf("%d != %d = %d\n", a, b, a != b);
11		printf("%d == %d = %d\n", a + 2, c, a + 2 == c);
12		printf("%d < %d > %d = %d\n", a, b, c, a < b > c);
13		printf("%d < %d < %d = %d\n", a, b, c, a < b < c);
14		printf("%d > %d > %d = %d\n", a, b, c, a > b > c);
15	}

출력문에 = 이후 %d 에 관계연산자를 매칭시켜서 1과 0을 출력한다.

a = 2, b =5, c = 4

6행 : printf("%d + 2 > %d = %d\n", a, b, a + 2 > b);

%d는 정수타입이 매칭된다. "" , 쌍타옴표 쉼표 이후에 있는 a, b, ..... 와 매칭되는데 순서대로 되며 구분은 쉼표로 한다.

 

즉 %d + 2 > %d = %d\n는 

     a             b     a+2>b 이렇게 매칭된다.

= 앞부분은 그냥 4 > 5가 문자열로 표현되어서 출력이 되고 ' = ' 이후에 %d에 a + 2 > b 가 매칭된다. 4 > 5 이므로 

0(거짓)이 출력된다.

결과값

7행 : 2 >5 는 거짓이므로 0이 출력된다. 그래서 2 + (0)이 되어 2

8행 : 4 < 2 는 거짓 -> 0

9행 : 2 <= 5 는 참이므로 1

10행 : 2 != 5 는 같지 않으므로 참 1

11행 : 4 == 4 두 값이 같으므로 참 1

12행 : 2 < 5 > 4 는 먼저 2 < 5는 참이므로 1, 1 > 4 는 거짓이므로 0

13행 : 2 < 5 < 4 는 2 < 5는 참 1, 1 < 4 는 참이므로 1

14행 : 2 > 5 > 4 는 2 > 5는 거짓 0, 0 > 4 는 거짓이므로 0이 된다.

 

관계연산자는 이렇게만 알아두면 되고 다른 연산자로는 삼항연산자로도 불리는 조건연산자가 있고, 논리연산자, 비트연산자가 있다.

 

반응형

댓글