C & C++/윤성우의 열혈 C 프로그래밍
[열혈 C] 논리 연산자와 콤마 연산자
거북이 코딩
2023. 10. 3. 17:52
관계 연산자
연산자 | 연산자의 기능 |
< | 예) n1 < n2 n1이 n2보다 작은가? |
> | 예) n1 > n2 n1이 n2보다 큰가? |
== | 예) n1 == n2 n1과 n2가 같은가? |
!= | 예) n1 != n2 n1과 n2가 다른가? |
<= | 예) n1 <= n2 n1이 n2보다 같거나 작은가? |
>= | 예) n1 >= n2 n1이 n2보다 같거나 큰가? |
위의 관계 연산자들은 조건을 만족하면 1을 만족하지 않으면 0을 반환한다. 여기서 1은 참(true)을 뜻하고 0은 거짓(false)을 뜻한다.
논리 연산자
논리 연산자 | 연산자의 기능 |
! | 예) !A A가 참이면 거짓, A가 거짓이면 참을 반환(논리 NOT) |
&& | 예) A && B A와 B 모두 참이면 연산결과로 참을 반환(논리 AND) |
|| | 예) A || B A와 B 둘 중 하나라도 참이면 연산결과로 참을 반환(논리 OR) |
논리 연산자 !의 예제를 보자.
#include <stdio.h>
int main(void)
{
int num1 = 10;
int result;
result = (!num1);
printf("result: %d \n", result);
return 0;
}
result: 0 |
위의 예제에서 num1 에는 0도아니고 1도 아닌 10이라는 숫자가 저장되어있다. 그렇다면 왜 논리연산자 !는 거짓을 반환한 것일까? C언어는 0이 아닌 모든 값을 참(true)으로 간주하기 때문이다. 따라서 예제에서는 10이라는 숫자가 참으로 인식되어 거짓이 반환된 것이다.
콤마 연산자( , )
콤마 연산자는 둘 이상의 변수를 동시에 선언하거나, 둘 이상의 문장을 한 행에 삽입하는 경우에 사용되는 연산자이다. 뿐만 아니라, 둘 이상의 인자를 함수로 전달할 때도 인자의 구분을 목적으로 주로 사용된다. 그럼 다음 예제를 통해서 콤마 연산자가 사용된 예를 보이겠다.
#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 |