관계연산자는 6개다. <, >, ==, <=, >=, !=
!= 와 ==를 제외한 나머지는 수학시간때 배운 것과 동일하다.
하지만 관계연산자는 관계를 나타내기 때문에 오로지 2가지의 값만 가진다.
True 혹은 False 중 하나만 무조건 하나만 가진다.
True 혹은 False 값 두가지만 가질 수 있는 변수는 bool이다.
이 값은 정수로 표현을 한다.
True --> 1
False --> 0
이 값은 정수로 나타나기 때문에 반환한 값을 정수 혹은 실수타입의 변수에 대입을 하고 연산을 할 수가 있다.
#include <stdio.h>
void main()
{
// 관계연산자
int num1 = 10;
int num2 = 10;
int num3 = 11;
int num4 = 0;
bool isTrue = false;
isTrue = num1 > num2; // 10 > 10
printf("%d\n", isTrue);
isTrue = num1 < num3; // 10 < 11
printf("%d\n", isTrue);
isTrue = num1 >= num2; // 10 >= 10
printf("%d\n", isTrue);
isTrue = num1 <= num2; // 10 <= 10
printf("%d\n", isTrue);
isTrue = num1 == num2; // 10 == 10
printf("%d\n", isTrue);
isTrue = num1 != num2; // 10 != 10
printf("%d\n", isTrue);
printf("\n\n");
int aaa = num1 > num2;
bool bbb = num1 > num2;
aaa += 10;
bbb += 10;
printf("%d\n", aaa);
printf("%d\n", bbb);
printf("\n\n");
aaa = num1 < num2;
bbb = num1 < num2;
aaa += 10;
bbb += 10;
printf("%d\n", aaa);
printf("%d\n", bbb);
getchar();
}
위에서 설명했듯이 bool 값은 정수로 나타나기 때문에 관계연산후 정수 혹은 실수데이터타입의 변수에 대입 할 수 있다.
하지만 bbb라는 bool타입에 증감연산자를 사용하면 에러가 나지는 않지만 1(True) 또는 0(False) 값만 가지게 되어서 연산은 무의미하다.