IT /C언어 강의

C언어 강의 3편: 연산자

· 4분 읽기
#C언어 #연산자 #산술연산 #논리연산

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

진리표:

ABA && BA || B!A
00001
01011
10010
11110

비트 연산자

비트 단위 연산을 수행합니다:

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

연산자 우선순위

연산자는 우선순위에 따라 실행됩니다:

  1. 괄호 ()
  2. 증감 연산자 ++, --
  3. 곱셈, 나눗셈, 나머지 *, /, %
  4. 덧셈, 뺄셈 +, -
  5. 비교 연산자 <, >, <=, >=
  6. 같음, 다름 ==, !=
  7. 논리 AND &&
  8. 논리 OR ||
  9. 대입 연산자 =

예시:

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)에 대해 공부해보겠습니다.