본문 바로가기
Coding/C

C언어 - 산술 연산자, 증감 연산자

by ZaRi 2023. 5. 5.

 

 오늘은 연산자에 대해 알아보도록 하겠습니다.

 


 

산술 연산자

 산술 연산자는 기본적으로 우리가 수학시간 때 배웠던 기호와 비슷합니다.

 

 

산술 연산자 설명 산술 연산자 설명
+ 더하기 * 곱하기
- 빼기 / 나누기
    % 나머지 값

 

 이렇게 5가지가 있습니다. 기본적으로 수학에서 산술할 때처럼 사용해도 되지만, 몇 가지 주의 사항이 있습니다.

 C언어에는 저번에도 봤지만 데이터 타입이 나누어져 있습니다.

 정수형, 실수형, 문자형 등 있습니다. 그리고 데이터 크기가 다른 두 개의 타입 간에는 자동 형변환이 일어난다고 했습니다. 하지만 그러지 않는 경우에는 형 변환이 일어나지 않을 것입니다.

 

 

 

#include <stdio.h>

int main()
{
	printf("%d", 10 / 3);

	return 0;
}

 

 이 코드의 출력 결과는 어떻게 될까요??

 이 코드를 보면 지금 정수형 데이터인 10을 정수형 데이터인 3이 나누어주고 있는 모습입니다.

 먼저 출력 결과를 봐보겠습니다.

 

 

 

3이-출력됨
나누기-결과

 

 3이 출력된 것을 확인 할 수 있습니다.

 두 개다 int형 자료형이기 때문에 자동 형변환이 일어나지 않고, 결과도 int형으로 나온 것입니다.

 (참고로 '파이썬'에서는 나누기가 자동으로 실수형으로 바뀌기에 3.3... 이 나옵니다.)

 

 그렇다면 실수형으로 받고 싶으면 어떻게 해야 할까요?

 간단합니다.

 

 

 

#include <stdio.h>

int main()
{
	printf("%f", 10 / 3.0);

	return 0;
}

 

 3.0으로 바꾸어주어 double 실수형 자료형으로 바꾸어주면 int형 정수형 자료형이었던 10이 자동으로 double 형으로 변환되어 연산이 일어날 것입니다. 그러면 당연히 결과도 실수형이 나오게 됩니다.

 

 

 

3.3333...이-출력됨
나누기-결과2

 

 3.33.. 실수가 출력되었습니다.

 이와 같이 C언어에서는 같은 연산이라도 데이터 타입이 다르면 결과가 다라질 수 있기 때문에 언제나 유의해주는 것이 좋습니다.

 

 

 

 

증감 연산자

증감 연산자는 말그대로 값을 1 올리거나 내려주는 연산자 입니다.

 

 

전위 증감 연산자 설명 후위 증감 연산자 설명
++변수명; 변수에 1을 먼저 더하고 계산 변수명++; 계산 후에 변수에 1을 더함
--변수명; 변수에 1을 먼저 빼고 계산 변수명--; 계산 후에 변수에 1을 뺌

 

 아마 설명으로 보면 이해하기 어려울 수도 있을 것 같습니다.

 그래서 예를 들어보겠습니다.

 

 

 

#include <stdio.h>

int main()
{
	int a, b;
	a = 0;
	b = 10;

	printf("%d %d\n\n", a, b);

	printf("%d %d\n\n", ++a, b--);

	printf("%d %d\n\n", a, b);

	return 0;
}

 

 첫번째는 그냥 출력, 두번째는 a는 전위 증가 연산, b는 후위 감소 연산을 했습니다.

 그리고 세번째는 다시 그냥 출력해보겠습니다.

 

 

첫번째줄-0과-10-출력-
두번째줄-1과-10-출력-
세번째줄-1과-9-출력-
출력-결과

 

 보는 것과 같이 a는 전위 연산이었기에 먼저 계산된 값이 출력되었습니다.

 그리고 b는 후위 연산이었기에 그 후에 감소되어 출력되는 것을 확인 할 수 있습니다.

 

 


 오늘은 산술연산자, 증감연산자에 대해 알아보았습니다. 다음에도 마저 연산자에 대해 다뤄보겠습니다.

댓글