오늘은 연산자에 대해 알아보도록 하겠습니다.
산술 연산자
산술 연산자는 기본적으로 우리가 수학시간 때 배웠던 기호와 비슷합니다.
산술 연산자 | 설명 | 산술 연산자 | 설명 |
+ | 더하기 | * | 곱하기 |
- | 빼기 | / | 나누기 |
% | 나머지 값 |
이렇게 5가지가 있습니다. 기본적으로 수학에서 산술할 때처럼 사용해도 되지만, 몇 가지 주의 사항이 있습니다.
C언어에는 저번에도 봤지만 데이터 타입이 나누어져 있습니다.
정수형, 실수형, 문자형 등 있습니다. 그리고 데이터 크기가 다른 두 개의 타입 간에는 자동 형변환이 일어난다고 했습니다. 하지만 그러지 않는 경우에는 형 변환이 일어나지 않을 것입니다.
#include <stdio.h>
int main()
{
printf("%d", 10 / 3);
return 0;
}
이 코드의 출력 결과는 어떻게 될까요??
이 코드를 보면 지금 정수형 데이터인 10을 정수형 데이터인 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.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는 후위 감소 연산을 했습니다.
그리고 세번째는 다시 그냥 출력해보겠습니다.
보는 것과 같이 a는 전위 연산이었기에 먼저 계산된 값이 출력되었습니다.
그리고 b는 후위 연산이었기에 그 후에 감소되어 출력되는 것을 확인 할 수 있습니다.
오늘은 산술연산자, 증감연산자에 대해 알아보았습니다. 다음에도 마저 연산자에 대해 다뤄보겠습니다.
댓글