C 기본 문법 – 연산자 – 0 – 산술 연산자

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 + floatfloat + 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 언어 실력, 멋지십니다!

답글 남기기