C 기본 문법 – 연산자 – 0편: 산술 연산자 완전 정복
안녕하세요, 똑똑한 C 언어 학습자 여러분 😊
이제는 변수도 만들 줄 알고, 숫자도 저장하고, 상수도 사용할 수 있게 되었죠?
그렇다면 이제 본격적으로 값과 값을 계산하는 도구, 바로 **연산자(operator)**를 배워야 할 때예요!
이번 시간에는 그중에서도 **산술 연산자(Arithmetic Operators)**를 중심으로,
더하기, 빼기, 곱하기, 나누기, 나머지까지 C 언어에서 계산하는 방법을
예시와 함께 재미있게 배워보겠습니다!
산술 연산자란?
산술 연산자는 숫자와 숫자를 계산할 때 사용하는 연산자입니다.
덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 등 기본적인 수학 연산을 다룰 수 있죠.
🎯 비유하자면,
연산자는 숫자 사이를 이어주는 수학 연필 같은 존재예요.
우리가 무엇을 계산할지 정해주면, C 언어는 연필을 들고 계산해서 결과를 돌려줘요!
C 언어의 산술 연산자 종류
연산자 | 기능 | 예시 | 설명 |
---|---|---|---|
+ |
덧셈 | a + b |
두 값을 더함 |
- |
뺄셈 | a - b |
왼쪽에서 오른쪽 값을 뺌 |
* |
곱셈 | a * b |
두 값을 곱함 |
/ |
나눗셈 | a / b |
왼쪽 값을 오른쪽 값으로 나눔 |
% |
나머지 | a % b |
왼쪽 값을 오른쪽 값으로 나눈 나머지 |
예제로 쉽게 이해하기
#include <stdio.h>
int main() {
int a = 10, b = 3;
printf("덧셈: %d
", a + b); // 13
printf("뺄셈: %d
", a - b); // 7
printf("곱셈: %d
", a * b); // 30
printf("나눗셈: %d
", a / b); // 3 (정수 나눗셈)
printf("나머지: %d
", a % b); // 1
return 0;
}
💡 정수끼리 나누면 결과도 정수입니다! 소수점 이하 버려져요.
나눗셈은 자료형에 따라 결과가 다를 수 있어요!
정수 나눗셈 vs 실수 나눗셈
int a = 7, b = 2;
float c = 7.0f, d = 2.0f;
printf("정수 나눗셈: %d
", a / b); // 3
printf("실수 나눗셈: %.2f
", c / d); // 3.50
7 / 2 = 3
(정수 나눗셈, 소수점 잘림)7.0 / 2.0 = 3.50
(실수 나눗셈)
📌 정수끼리 나누는 경우 소수점 이하가 버려진다는 점 꼭 기억하세요!
+
연산자와 문자열/문자?
C 언어에서는 +
연산자를 문자열 결합 용도로 사용할 수 없습니다!
다만, **문자(char)는 내부적으로 숫자(아스키 코드)**이기 때문에 +
연산이 가능합니다.
char ch = 'A';
printf("%c
", ch + 1); // 출력: B
'A' + 1 = 'B'
는 아스키코드에서 65 + 1 = 66 → 문자 ‘B’로 해석됩니다!
나머지 연산자 %
의 활용
int num = 15;
if (num % 2 == 0) {
printf("짝수입니다
");
} else {
printf("홀수입니다
");
}
%
는 짝수/홀수 판별, 배수 체크, 순환 연산 등에 아주 유용해요!
연산자의 우선순위와 괄호 사용
우선순위 | 연산자 | 비고 |
---|---|---|
1 | () |
괄호 연산 우선 |
2 | * , / , % |
곱하기, 나누기, 나머지 |
3 | + , - |
덧셈, 뺄셈 |
예시
int result = 10 + 2 * 3; // 10 + (2 * 3) = 16
int result2 = (10 + 2) * 3; // (10 + 2) * 3 = 36
🎯 연산 순서가 중요할 땐 반드시 괄호로 명확하게 표현하세요!
산술 연산자와 자료형 자동 변환
암묵적 형 변환
int i = 5;
float f = 2.0;
float result = i + f; // int → float 자동 변환
- 연산 시 두 자료형이 다르면 작은 타입이 큰 타입으로 변환돼요.
- 이걸 **암묵적 형 변환(implicit type conversion)**이라고 해요.
🧠 예)
int + float
→float + float
→ 결과는float
증감 연산자 (보너스)
산술 연산자에 덧붙여 자주 쓰이는 증감 연산자도 잠깐 소개해드릴게요!
연산자 | 기능 | 예시 | 설명 |
---|---|---|---|
++ |
1 증가 | a++ , ++a |
변수 값을 1 증가 |
-- |
1 감소 | a-- , --a |
변수 값을 1 감소 |
int x = 5;
printf("%d
", x++); // 출력: 5, x는 6이 됨 (후위)
printf("%d
", ++x); // 출력: 7, x는 먼저 증가 (전위)
✅ 산술 연산자 정리표
연산자 | 이름 | 설명 |
---|---|---|
+ |
덧셈 | 두 값을 더함 |
- |
뺄셈 | 왼쪽에서 오른쪽을 뺌 |
* |
곱셈 | 곱한 값을 계산 |
/ |
나눗셈 | 몫을 반환 (정수면 소수점 제거됨) |
% |
나머지 | 나머지를 반환 (정수형에서만 사용 가능) |
⚠️ 산술 연산자 사용 시 주의할 점
주의사항 | 설명 |
---|---|
정수 나눗셈은 소수점이 버려져요 | 실수 연산 시 float/double 사용하세요 |
나누는 수가 0이면 에러 발생 | a / 0 또는 a % 0 은 런타임 오류 |
+ , - , * 는 자료형에 따라 결과 다름 |
int 연산이면 결과도 int |
나머지 % 는 정수형에서만 가능 |
실수에는 % 사용 불가 (float % float ❌) |
괄호로 연산 순서를 명확히! | 실수 줄이고 가독성 향상됨 |
마무리하며 💬
산술 연산자는 모든 프로그래밍의 계산 중심축이에요!
숫자를 더하고, 나누고, 나머지를 구하는 모든 동작의 시작이죠.
특히 C 언어에서는 자료형에 따른 연산 결과 차이에 익숙해지는 게 중요합니다.
다음 편에서는 **대입 연산자 및 복합 대입 연산자(+=
, *=
, 등)**를 배워보며
코드를 더 간결하고 효율적으로 작성하는 방법을 배워볼게요!
그럼 오늘도 수고 많으셨습니다 😊
함께 차곡차곡 쌓아가는 C 언어 실력, 멋지십니다!