**연산자(Operator)**는 변수나 값에 대해 덧셈, 비교, 논리 판단 등의 계산을 수행하도록 지시하는 기호입니다.
1. 주요 연산자의 종류
1) 산술 연산자
+(덧셈),-(뺄셈),*(곱셈),/(나눗셈 몫),%(나머지 연산자)
2) 증감 연산자 (++, --)
- 전위 연산 (
++a): 값을 먼저 1 증가시킨 후 문장 실행. - 후위 연산 (
a++): 문장을 먼저 실행한 후 값을 1 증가.
3) 관계(비교) 연산자
==(같다),!=(다르다),>(크다),<(작다),>=,<=- 결과값으로 참은 1, 거짓은 0을 반환합니다.
4) 논리 연산자
&&(AND): 두 조건이 모두 참일 때만 참.||(OR): 두 조건 중 하나라도 참이면 참.!(NOT): 참을 거짓으로, 거짓을 참으로 뒤집음.
2. 증감 연산자 전위/후위 차이 예시 코드
#include <stdio.h>
int main(void) {
int x = 10, y = 10;
int a = ++x; // x가 11이 된 후 a에 대입 -> a는 11
int b = y++; // b에 10이 먼저 대입된 후 y가 11이 됨 -> b는 10
printf("a = %d, b = %d\n", a, b);
return 0;
}
3. 형 변환 (Type Casting)
서로 다른 자료형 간 계산이 일어날 때 형 변환이 발생합니다.
- 자동 형 변환: 정수와 실수를 더하면 데이터 손실을 막기 위해 표현 범위가 넓은 실수형으로 자동 변환.
- 명시적 형 변환:
(int)3.14처럼 괄호를 써서 강제로 타입을 변환.
4. 자주 묻는 질문 (Q&A)
Q. C 언어에서 5 / 2를 계산하면 왜 2.5가 아니라 2가 나오나요?
A. 정수와 정수의 나눗셈 결과는 항상 정수(소수점 버림)가 됩니다. 2.5라는 소수점 결과를 얻으려면 두 수 중 적어도 하나를 실수로 변환(5.0 / 2 또는 (double)5 / 2)해야 합니다.