본문 바로가기
언어/C++

[C++ 기본 공부정리] 3-1. 연산자(operator)

by 민-Zero 2019. 11. 15.

공부 내용을 정리하는 목적 이므로 참고용으로만 읽어 주시기 바랍니다. 

틀린 부분에 대한 지적은 감사합니다.

C++에서는 연산을 처리하기 위해 다양한 연산자를 제공하고 있다. 이에 대해 정리하여 보자.

 

1. 산술 연산자(arithmetic operator)

산술 연산자는 사칙연산을 처리하기 위해 자주 쓰이는 연산자이다.

산술 연산자는 항이 2개가 필요한 이항 연산자 이며 왼쪽항에서 오른쪽항으로 결합된다.

+ 왼쪽 항에 오른쪽 항의 값을 더한다
- 왼쪽 항에 오른쪽 항의 값을 뺀다
* 왼쪽 항에 오른쪽 항의 값을 곱한다
/ 왼쪽 항을 오른쪽 항의 값으로 나눈다.
% 왼쪽 항을 오른쪽 항의 값으로 나눈 나머지

 

위의 경우 /에서 몫의 값이 나오는 것을 볼 수 있는대 이는 int형을 사용했기 때문에 출력되는 값 또한 int형 이기 때문에 소수점을 표현하지 못하기 때문이다.

따라서 실수형 float 이나 double을 사용할 경우 나누기의 결과를 제대로 확인할 수 있다.

또한 %의 경우 값을 실수형으로 사용할 때 나누기 실행 시 실수형은 결과를 소수 형태로 표현 가능하기 때문에 해당 연산에서 나머지 값을 반환할 수 없으므로 에러를 나타내는 것을 확인할 수 있었다.

 

2. 대입 연산자(assignment operator)

대입 연산자의 경우 변수에 값을 대입할때 사용하는 연산자이다.

이항 연산자이며 산술 연산자와는 반대로 오른쪽항에서 왼쪽 항으로 결합되고 산술 연산자와 결합된 형태도 존재한다.

= 왼쪽항에 오른쪽항을 대입한다.
+= 왼쪽항에 오른쪽항을 더한 후 그 값을 왼쪽항에 대입한다.
-= 왼쪽항에 오른쪽항을 뺀 후 그 값을 왼쪽항에 대입한다.
*= 왼쪽항에 오른쪽항을 곱한 후 그 값을 왼쪽항에 대입한다.
/= 왼쪽항에 오른쪽항을 나눈 후 그 값을 왼쪽항에 대입한다.
%= 왼쪽항에 오른쪽항을 나눈 후 그 값의 나머지를 왼쪽항에 대입한다.

즉 += 의경우 test1 = test 1 + 5;의 코드와 같은 동작이라고 이해하면 되고 *= -= 등도 동일하다.

=+로 바꾸어서 사용할 경우 값에 아무런 변화가 없는 것을 확인할 수 있었다. 따라서 연산자의 순서를 주의해야 한다.

 

3. 증감 연산자(increment and decrement operator)

증감 연산자는 1씩 증가 또는 감소 시킬때 사용한다. 주의할 점은 전치 연산과 후치 연산의 차이점을 잘 기억해야 한다.

++x 피연산자의 값을 1 증가시킨 후에 해당 연산을 진행한다.
x++ 먼저 해당 연산을 진행한 후에 피연산자의 값을 1 증가시킨다.
--x 피연산자의 값을 1 감소시킨 후에 해당 연산을 진행한다.
x-- 먼저 해당 연산을 진행한 후에 피연산자의 값을 1 감소시킨다.

전치 후치의 차이점은 연산의 순서이다. 전치 연산자 즉 ++ 또는 --가 앞에 붙을 경우 무조건적으로 1을 증가 또는 감소시킨 뒤 해당 변수를 참조하여 연산을 진행하고 뒤에 붙을 경우 변수가 진행하는 연산을 먼저 실행한 뒤 변수의 값을 증가 또는 감소시킨다.

결과를 보면 둘 다 ++증가 연산자를 사용하였으니 6으로 값이 증가된 것은 동일하다 하지만 연산의 결과가 다름을 확인할 수 있다. ++test1 - 5의 경우 전치연산 이므로 먼저 test1을 6으로 증가시킨뒤 연산을 진행 6-5의 결과가 res1에 저장된다.  하지만 test2++ - 5의 경우 test2의 증가를 진행하지 않고 먼저 연산 5-5를 실행한뒤 res2에 그 결과를 저장하고나서 test2의 값을 1 증가시킴을 확인 할 수 있다.

 

4. 비교 연산자(comparison operator)

비교 연산자의 경우 두항 사이의 상대적인 크기를 비교하는 연산자이다.

이항 연산자이며 왼쪽에서 오른쪽으로 결합된다.

== 두항의 값이 같으면 1을 반환한다.
!= 두항의 값이 다르면 1을 반환한다.
> 왼쪽항이 오른쪽항 보다 크면 1을 반환한다.
>= 왼쪽항이 오른쪽항 보다 크거나 같으면 1을 반환한다.
< 왼쪽항이 오른쪽항 보다 작으면 1을 반환한다.
<= 왼쪽항이 오른쪽항 보다 작거나 같으면 1을 반환한다.

일반 수학에서는 같다는 표시로 = 을 사용하는데 =이 대입 연산자로 사용되고 있으므로 같음을 확인할 때는 ==을 사용

== 의 결과를 보면 두 항의 값이 같지 않으므로 거짓을 뜻하는 0이 반환되고 >의 경우 왼쪽이 오른쪽보다 큰 값을 가지고 있으므로 참을 뜻하는 1이 반환된다.

댓글