다루는 내용
- 비교 연산자
- 논리 연산자
비교 연산자로는 이항 연산자인 <, <=, >, >=, ==, != 가 있다.
논리 연산자로는 이항 연산자인 &&, ||, ! 가 있다.
비교 연산자와 논리 연산자는 이항 연산자로 연산결과가 참이면 결과값이 1이 되며 거짓일 경우에는 0이 된다.
비교 연산의 경우 2<4<3 과 같은 표현은 가능하다. 표현이 가능하다는 말은 문법적으로 가능하다는 것일 뿐 연산 결과에 대해서는 주의깊게 살펴보아야 할 것이다.
일반 수학에서는 2 < 4 < 3 을 하나의 수식으로 생각을 하여 풀기 때문에 연산 결과가 거짓이다.
C언어에서는 2 < 4 연산을 수행을 하고 해당 연산 결과 < 3 을 수행을 한다.
즉, 2 < 4 < 3 ☞ (2 < 4) < 3 ☞ 1 < 3 과 같이 진행이 되어 해당 연산 결과가 참이다.
일반 수학에서도 2 < 4 < 3 은 '2 < 4 이고 4 <3 이다'와 동치라는 사실은 모두 알고 있을 것이다.
이항 연산자로 쓰이는 C언어에서도 (2 < 4) && (4 < 3)과 같이 표현을 하면 예상한 결과와 같은 결과를 얻을 수 있다.
이와 같이 C언어에서 여러 값을 비교하고자 한다면 논리연산자와 결합하여 표현을 하여 가독성을 높일 수 있다.
논리 연산에서는 피연산자가 0이 아니면 참으로 취급을 하고 피연산자가 0이면 거짓으로 취급을 하여 연산을 수행한다.
또한, 논리곱(&&)의 경우 왼쪽 피연산자가 거짓이면 오른쪽 피연산자가 참인지 거짓인지를 확인하지 않는다.
논리합(||)의 경우에는 왼쪽 피연산자가 참이면 오른쪽 피연산자가 참인지 거짓인지를 확인하지 않는다.
Look & Feel & Think
다음의 두 개의 예의 결과를 보고 논리곱과 논리합의 연산 수행과정을 이해해 보세요.
마지막으로 노파심에서 얘기를 하는데 <= 와 같은 연산자는 하나의 토큰이므로 공백이 와서는 안된다.
'언어 자료구조 알고리즘 > C 언어 문법' 카테고리의 다른 글
19. 기본입출력 - 입력 (0) | 2009.08.19 |
---|---|
18. 기본 입출력 - 출력 (0) | 2009.08.19 |
17.기본 입출력 개요 (0) | 2009.08.19 |
16. 지시/주소/인덱스/간접연산자 (0) | 2009.08.19 |
15. 비트/ 쉬프트 연산자 (0) | 2009.08.19 |
13. 대입 연산자 (0) | 2009.08.19 |
12. 증감연산자 (0) | 2009.08.19 |
11. 산술 연산자 (0) | 2009.08.19 |
10. 연산자 (0) | 2009.08.19 |
9. 변수의 종류 (0) | 2009.08.19 |