Tech Blog/C and C++
C언어 논리연산자와 콤마 연산자
EXPRESSIONS HAVE POWER
2021. 6. 7. 21:56
* 논리연산자(&&, ||, !)
연산자 | 연산자의 기능 | 결합방향 |
&& | A와 B (AND) | --> |
|| | A 또는 B (OR) | --> |
! | !A | <-- |
OperatorSeven.c
#include <stdio.h>
int main(void)
{
int num1=10;
int num2=12;
int result1, result2, result3;
result1 = (num1==10 && num2 == 12);
result2 = (num1<12 || num2 >12);
result3 = (!num1);
printf("result1: %d \n", result1);
printf("result2: %d \n", result2);
printf("result3: %d \n", result3);
return 0;
}
실행결과
result1: 1
result2: 1
result3: 0
result3 = (!num1);
이 문장은 논리 NOT 연산의 예를 보여 준다. num1에 1이 저장되어 있다면 result 3 에는 0이 저장되고 , num1에 0이 저장되어 있다면, result 3에는 1이 저장된다. 그렇다면 num1에 0도 1도 아닌 다른 값이 저장되어 있다면?
- "C언어는 0이 아닌 모든 값을 '참(TRUE)으로 간주한다." 0은 거짓 그 외 숫자는 모두 참이다.
그외 숫자는 결과로 '참'이 반환되어야 해서 1이 반환되었고, result 3에 0이 저장 된 이유이다.
* 콤마연산자 (,)
콤마 연산자는 둘 이상의 변수를 동시에 선언하거나, 둘 이상의 문장을 한 행(line)에 삽입하는 경우 사용되는 연산자이다.
CommaOp.c
#include <stdio.h>
int main(void)
{
int num1=1, num2=2;
printf("Hello "), printf("world! \n");
num1++, num2++;
printf("%d ", num1), printf("%d ", num2), printf("\n");
return 0;
}
실행결과
Hello world!
2 3