본문 바로가기
과목공부/C언어

[C언어] C언어 연산자 완전 정복

by 강갱갱 2025. 6. 14.

C언어 4장: 연산자 완전 정복


1. 증감 연산자 (Increment / Decrement)

증감 연산자는 변수의 값을 1씩 증가시키거나 감소시킬 때 사용합니다.

  • ++ : 변수 값을 1 증가 (예: i++, ++i)
  • -- : 변수 값을 1 감소 (예: i--, --i)

증감 연산자는 변수 앞에 붙을 때 (전위 연산자)와 뒤에 붙을 때 (후위 연산자)에 따라 동작 순서가 다릅니다.

int i = 5;
printf("%d\n", i++);  // 출력: 5 (출력 후 i는 6)
printf("%d\n", ++i);  // 출력: 7 (먼저 증가 후 출력)
  

2. 대입 연산자 (Assignment Operators)

값을 변수에 저장하거나 기존 변수 값에 연산을 결합할 때 사용합니다.

  • = : 단순 대입 (예: a = 10;)
  • += : 더한 후 대입 (예: a += 5; // a = a + 5;)
  • -= : 뺀 후 대입 (예: a -= 3; // a = a - 3;)

3. 산술 연산자 (Arithmetic Operators)

수학적인 계산에 쓰이는 연산자입니다.

  • + : 덧셈
  • - : 뺄셈
  • * : 곱셈
  • / : 나눗셈 (정수 나눗셈은 몫만 반환)
  • % : 나머지 연산 (모듈로 연산)

예시:

int a = 10, b = 3;
printf("a + b = %d\n", a + b);  // 13
printf("a / b = %d\n", a / b);  // 3 (몫)
printf("a % b = %d\n", a % b);  // 1 (나머지)
  

4. 관계 연산자 (Relational Operators)

두 값의 관계를 비교하여 참 또는 거짓(1 또는 0)을 반환합니다.

  • > : 크다
  • < : 작다
  • == : 같다
  • != : 같지 않다
  • >= : 크거나 같다
  • <= : 작거나 같다

예시:

int x = 5, y = 10;
printf("%d\n", x > y);   // 0 (거짓)
printf("%d\n", x != y);  // 1 (참)
  

5. 논리 연산자 (Logical Operators)

조건문에서 여러 조건을 결합할 때 사용합니다.

  • && : 그리고 (AND)
  • || : 또는 (OR)
  • ! : 부정 (NOT)

예시:

int a = 5, b = 10;
if (a < 10 && b > 5) {
  printf("조건 만족\n");
}
  

6. 비트 연산자 (Bitwise Operators)

정수형 데이터를 비트 단위로 조작할 때 사용합니다.

  • & : 비트 AND
  • | : 비트 OR
  • ^ : 비트 XOR (배타적 OR)
  • ~ : 비트 NOT (반전)
  • << : 왼쪽 시프트 (비트 이동)
  • >> : 오른쪽 시프트 (비트 이동)

예시:

unsigned char a = 0b10101010;
unsigned char b = 0b11001100;
printf("AND:  %02X\n", a & b);  // 0x80
printf("OR:   %02X\n", a | b);  // 0xBA
printf("XOR:  %02X\n", a ^ b);  // 0x3A
printf("NOT a: %02X\n", ~a);     // 0x55
  

7. 조건 연산자 (삼항 연산자)

조건문을 간단히 표현하는 연산자로?: 기호를 사용합니다.

형식: 조건? 참일 때 값 : 거짓일 때 값;

예를 들어, 두 수 중 큰 값을 구할 때 사용:

int x = 10, y = 20;
int max = (x > y) ? x : y;
printf("큰 값은 %d\n", max);  // 20 출력
  

8. 자료형 변환 (Type Conversion)

C언어에서 서로 다른 자료형끼리 연산하면 자동으로 변환이 일어납니다.

예를 들어, intdouble이 더해지면 int 값이 double로 변환되어 연산됩니다.

int a = 5;
double b = 3.2;
double result = a + b;  // a가 double로 변환되어 8.2가 됨
  

이러한 암묵적 형변환을 이해하는 것은 정확한 계산과 오류 방지에 중요합니다.


이번 장에서는 C언어의 다양한 연산자들을 체계적으로 정리했습니다.
증감, 대입, 산술, 관계, 논리, 비트 연산자부터 조건 연산자와 자료형 변환까지
각 연산자의 특징과 예제를 통해 확실히 이해할 수 있도록 구성했습니다.

앞으로 코딩할 때 꼭 참고해서 연산자에 대한 개념을 탄탄히 다지시길 바랍니다!

반응형