C언어 강의 3편: 연산자
· 4분 읽기
C언어 강의 3편: 연산자
연산자란?
연산자(Operator)는 데이터를 처리하기 위한 기호입니다. C언어에는 다양한 종류의 연산자가 있습니다.
산술 연산자
기본적인 수학 연산을 수행합니다:
int a = 10, b = 3;
printf("%d + %d = %d\n", a, b, a + b); // 덧셈: 13
printf("%d - %d = %d\n", a, b, a - b); // 뺄셈: 7
printf("%d * %d = %d\n", a, b, a * b); // 곱셈: 30
printf("%d / %d = %d\n", a, b, a / b); // 나눗셈: 3 (정수 나눗셈)
printf("%d %% %d = %d\n", a, b, a % b); // 나머지: 1
주의사항:
- 정수 나눗셈은 소수점 이하를 버립니다
- 실수 나눗셈을 원하면 실수형 변수를 사용하세요
float x = 10.0, y = 3.0;
printf("%.2f / %.2f = %.2f\n", x, y, x / y); // 3.33
대입 연산자
변수에 값을 저장합니다:
int a = 10; // 기본 대입
a += 5; // a = a + 5와 동일
a -= 3; // a = a - 3와 동일
a *= 2; // a = a * 2와 동일
a /= 4; // a = a / 4와 동일
a %= 3; // a = a % 3와 동일
증감 연산자
값을 1씩 증가 또는 감소시킵니다:
int a = 5;
printf("%d\n", a++); // 후위 증가: 5 출력 후 a는 6
printf("%d\n", ++a); // 전위 증가: a는 7, 7 출력
printf("%d\n", a--); // 후위 감소: 7 출력 후 a는 6
printf("%d\n", --a); // 전위 감소: a는 5, 5 출력
차이점:
a++: 값을 먼저 사용한 후 증가++a: 값을 먼저 증가한 후 사용
비교 연산자
두 값을 비교하여 참(1) 또는 거짓(0)을 반환합니다:
int a = 10, b = 5;
printf("%d == %d: %d\n", a, b, a == b); // 같음: 0 (거짓)
printf("%d != %d: %d\n", a, b, a != b); // 다름: 1 (참)
printf("%d > %d: %d\n", a, b, a > b); // 큼: 1 (참)
printf("%d < %d: %d\n", a, b, a < b); // 작음: 0 (거짓)
printf("%d >= %d: %d\n", a, b, a >= b); // 크거나 같음: 1
printf("%d <= %d: %d\n", a, b, a <= b); // 작거나 같음: 0
논리 연산자
논리 연산을 수행합니다:
int a = 1, b = 0;
printf("%d && %d: %d\n", a, b, a && b); // AND: 0
printf("%d || %d: %d\n", a, b, a || b); // OR: 1
printf("!%d: %d\n", a, !a); // NOT: 0
진리표:
| 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 |
비트 연산자
비트 단위 연산을 수행합니다:
int a = 5; // 0101 (이진수)
int b = 3; // 0011 (이진수)
printf("%d & %d = %d\n", a, b, a & b); // AND: 1 (0001)
printf("%d | %d = %d\n", a, b, a | b); // OR: 7 (0111)
printf("%d ^ %d = %d\n", a, b, a ^ b); // XOR: 6 (0110)
printf("~%d = %d\n", a, ~a); // NOT: -6
printf("%d << 1 = %d\n", a, a << 1); // 왼쪽 시프트: 10
printf("%d >> 1 = %d\n", a, a >> 1); // 오른쪽 시프트: 2
연산자 우선순위
연산자는 우선순위에 따라 실행됩니다:
- 괄호
() - 증감 연산자
++,-- - 곱셈, 나눗셈, 나머지
*,/,% - 덧셈, 뺄셈
+,- - 비교 연산자
<,>,<=,>= - 같음, 다름
==,!= - 논리 AND
&& - 논리 OR
|| - 대입 연산자
=
예시:
int result = 2 + 3 * 4; // 14 (곱셈이 먼저)
int result2 = (2 + 3) * 4; // 20 (괄호가 먼저)
실전 예제
#include <stdio.h>
int main() {
int a = 10, b = 3;
printf("=== 산술 연산 ===\n");
printf("%d + %d = %d\n", a, b, a + b);
printf("%d - %d = %d\n", a, b, a - b);
printf("%d * %d = %d\n", a, b, a * b);
printf("%d / %d = %d\n", a, b, a / b);
printf("%d %% %d = %d\n", a, b, a % b);
printf("\n=== 비교 연산 ===\n");
printf("%d > %d: %s\n", a, b, a > b ? "참" : "거짓");
printf("%d == %d: %s\n", a, b, a == b ? "참" : "거짓");
return 0;
}
다음에 공부할 내용
다음 포스트에서는 제어문(if, switch)에 대해 공부해보겠습니다.