본문 바로가기

Programming Languages/C++

연산자

연산자는 산술, 논리, 관계, 대입 등 다양한 형태의 연산을 지시한다. 피연산자는 연산의 대상이 되는 값, 수식, 또는 변수이며, 연산자에 따라 1개, 2개, 3개의 피연산자를 사용한다. 이를 각각 단항, 이항, 삼항 연산자라고 부른다.

산술 연산자 ▶ 숫자 데이터에 가감승제 및 관련 연산을 지시하는 연산자

  • 사칙 연산자 : 가, 감, 승, 제를 나타내는 +, -, *, / 
수식 수식의 값 비고
5 + 3 8  
3 / 2 1 정수형 연산의 결과는 정수형
3.0 / 2.0 1.5  
  • 나머지 연산 : 정수형 나눗셈의 나머지를 구하는 % 연산
수식 수식의 값 비고
5 % 3 2 5를 3으로 나눈 나머지는 2
5 % -3 2 5를 -3으로 나눈 나머지는 2
-5 % 3 -2 -5를 3으로 나눈 나머지는 -2
-5 % -3 -2 -5를 -3으로 나눈 나머지는 -2
  • 증, 감 연산 : 변수의 값을 1씩 증가 또는 감소시키는 단항 연산자이다. ++및 -- 연산자가 있다. 연산자는 변수의 앞 또는 뒤에 있을 수 있는데, 연산자의 위치에 관계없이 변수가 갖는 값은 같으나 수식의 값은 다르다.

정수형 변수 a가 10이라는 값을 가지고 있을 때

수식 수식의 값 변수의 값 비고
++a 11 11 a의 값을 1 증가 또는 감소시키며, 수식의 값은 변화된 값이다.
--a 9 9
a++ 10 11 a의 값을 1 증가 또는 감소시키며, 수식의 값은 변수의 원래 값이다.
a-- 10 9
  • 단항 부호 연산자 +, -

논리 연산자 ▶ 참 거짓을 판별하는 논리합( || ), 논리곱( && ), 부정( ! ) 연산이 이에 해당된다.

수식 비고
a > 0 && b > 0 a와 b가 모두 0보다 크면 참
a > 0 || b > 0 a가 0보다 크거나 b가 0보다 크면 참
!(a > 0) a가 0보다 크면 거짓, 그렇지 않으면 참

관계 연산자 ▶ 촤측 피연산자가 우측 피연산자보다 크다 ( > ), 작다( < ), 크거나 같다( >= ), 작거나 같다( <= ), 같다( == ), 같지 않다( != ) 등의 관계에 대한 참 거짓을 계산한다.

대입 연산자 ▶ 대입 연산자( = )는 우측 피연산자에 해당되는 수식의 값을 좌측 피연산자에 저장한다. 그러므로 최측 피연산자는 변수와 같이 값을 저장하는 공간인 l-value여야 하며, 우측 피연산자에는 저장할 값을 제공하는 변수, 상수 또는 이들을 포함하는 수식인 r-value가 사용될 수 있다. 대입 연산자의 결과는 l-value에 저장 되는 값이며, 이 값이 또 다른 l-value에 저장되도록 다음과 같이 대입 연산자를 연속하여 사용할 수 있다.

int a, b;

a = b = 10; // b = 10의 결과 b에 저장되는 10을 a에 저장한다.

 

대입 연산자는 2항 연산자와 함께 복합 대입 연산자로 사용될 수 있다. +=, -=, *=, /=, %=, <<=, >>=, &=, |=, ^= 등이 복합 대입 연산자인데, 좌측과 우측 피연산자를 대상으로 지정된 연산을 한 후 그 결과를 좌측 피연산자에 대입한다.

a -= b; // a = a - b와 동일함

 

조건 연산자 ▶ 조건 연산자 ? : 은 C++의 유일한 삼항 연산자로서, 지정된 조건이 참인가 거짓인가에 따라 값을 선택할 수 있게 한다.

수식 비고
a > 0 ? b : c a > 0이 참이면 수식의 값은 b, 거짓이면 c

'Programming Languages > C++' 카테고리의 다른 글

흐름제어 구문  (0) 2020.04.20
자료형의 변환  (0) 2020.04.17
기본 자료형 및 상수와 변수  (0) 2020.04.15
키워드와 식별자  (0) 2020.04.14
C++이란  (0) 2020.02.15