숫자를 계산하는 데 사용하는 +,-,*,/ 와 같은 연산 기호를 연산자(Operator)라고 한다.
연산자는 단순히 값을 계산하는 역할만 하는 게 아니라 비교, 참, 거짓을 판단하고 문장을 일정한 기준으로 연결하기도 한다.
C 언어는 다양한 연산자를 제공하는데 이 연산자들 중 기본이 되는 연산자들을 알아보자.
+, -, *, /(나눗셈-몫), %(나눗셈-나머지)
컴퓨터에서는 값이 순차적으로 증가하거나 감소하는 경우가 많다.
그래서 변수가 가지고 있는 값을 1 증가시키는 ++ 증가 연산자와 1 감소시킬 수 있는 -- 감소 연산자를 제공한다.
int i = 5;
i++; /* i 값을 1 증가시킴. i에 6이 대입됨. */
전위형
int i = 5, sum;
sum = ++i;
/* 자신의 값을 먼저 증가시켜 6을 만든 뒤 sum에 6을 대입함. i와 sum이 모두 6이 됨 */
값을 먼저 증감한 후에 연산
후위형
int i = 5, sum;
sum = i++;
/* i의 값 5를 sum에 먼저 대입하고 i를 증가시킴. i는 6이고 sum은 5가 됨 */
연산을 하고 난 후에 값을 증감
문장과 문장의 상황을 일정한 규칙(AND, OR, NOT)으로 연결해주는 연산자가 논리 연산자이고, 결괏값은 진릿값(참, 거짓)을 사용한다.
C언어에서 AND -> &&, OR -> ||, NOT -> ! 키워드 사용.
A | B | A&&B 연산 | AㅣㅣB 연산 | !A연산 |
---|---|---|---|---|
0 | 0 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 1 | 1 | 1 | 0 |
논리 연산자 | 연산 특성 |
---|---|
&& | A와 B가 모두 참이어야 결과 값이 1, 하나라도 거짓이면 결과 값은 0 |
ㅣㅣ | A 또는 B가 참이면 결과 값이 1, 둘 다 거짓일 때만 결과 값이 0 |
! | A가 거짓이면 결과 값이 1, A가 참이면 결과 값이 0 |
결과 값이 참이면 1, 거짓으면 0으로 처리된다.
관계 연산자 | 연산 특성 |
---|---|
A < B | A가 B보다 작으면 참 |
A > B | A가 B보다 크면 참 |
A <= B | A가 B보다 작거나 같으면 참 |
A >= B | A가 B보다 크거나 같으면 참 |
A == B | A와 B가 같으면 참 |
A != B | A와 B가 같지 않으면 참 |
#include <stdio.h>
int main(){
int a = 10;
int b = 33;
int sum = a + ++b;
int sub = a - b--;
double div = a / b;
float imul = a * b;
int per = a % b;
int or = a | b;
int and = a & b;
int xor = a ^ b;
int true1 = a && b;
int true2 = a || b;
int false = !a;
printf("true1 : %d, true2 : %d, false : %d\n", true1, true2, false);
}
44, -24, 0.30303, 330, 10, orandxor생략, 1, 1, 0