operator : 연산자

산술 연산자(arithmetic operator)

산술 연산자 설명
+ 왼쪽의 피연산자에 오른쪽의 피연산자를 더함.
- 왼쪽의 피연산자에서 오른쪽의 피연산자를 뺌.
* 왼쪽의 피연산자에 오른쪽의 피연산자를 곱함.
/ 왼쪽의 피연산자를 오른쪽의 피연산자로 나눔.
% 왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후, 그 나머지를 반환함.
int num1 = 10;

int num2 = 4;

 

cout << "+ 연산자에 의한 결괏값은 " << num1 + num2 << "입니다." << endl;

cout << "- 연산자에 의한 결괏값은 " << num1 - num2 << "입니다." << endl;

cout << "* 연산자에 의한 결괏값은 " << num1 * num2 << "입니다." << endl;

cout << "/ 연산자에 의한 결괏값은 " << num1 / num2 << "입니다." << endl;

cout << "% 연산자에 의한 결괏값은 " << num1 % num2 << "입니다.";

// 겨로가
+ 연산자에 의한 결괏값은 14입니다.

- 연산자에 의한 결괏값은 6입니다.

* 연산자에 의한 결괏값은 40입니다.

/ 연산자에 의한 결괏값은 2입니다.

% 연산자에 의한 결괏값은 2입니다.

연산자의 우선순의(operator precedence)와 결합 방향(associativity)

우선순위 연산자 설명 결합 방향
1 :: 범위 지정 연산자 -
2 ++ 후위 증가 연산자 왼쪽에서 오른쪽으로
-- 후위 감소 연산자 왼쪽에서 오른쪽으로
() 함수 호출 왼쪽에서 오른쪽으로
[] 첨자 연산자 왼쪽에서 오른쪽으로
. 멤버 연산자 왼쪽에서 오른쪽으로
-> 멤버 접근 연산자 왼쪽에서 오른쪽으로
typeid 타입 인식 왼쪽에서 오른쪽으로
const_cast 상수 타입 변환 왼쪽에서 오른쪽으로
dynamic_cast 동적 타입 변환 왼쪽에서 오른쪽으로
reinterpret_cast 재해석 타입 변환 왼쪽에서 오른쪽으로
static_cast 정적 타입 변환 왼쪽에서 오른쪽으로
3 ! 논리 NOT 연산자 오른쪽에서 왼쪽으로
~ 비트 NOT 연산자 오른쪽에서 왼쪽으로
+ 양의 부호 (단항 연산자) 오른쪽에서 왼쪽으로
- 음의 부호 (단항 연산자) 오른쪽에서 왼쪽으로
++ 전위 증가 연산자 오른쪽에서 왼쪽으로
-- 전위 감소 연산자 오른쪽에서 왼쪽으로
(타입) 타입 캐스트 연산자 오른쪽에서 왼쪽으로
* 참조 연산자 (단항 연산자) 오른쪽에서 왼쪽으로
& 주소 연산자 (단항 연산자) 오른쪽에서 왼쪽으로
sizeof 크기 연산자 오른쪽에서 왼쪽으로
new 객체 생성 오른쪽에서 왼쪽으로
delete 객체 제거 오른쪽에서 왼쪽으로
4 .* 멤버 포인터 연산자 왼쪽에서 오른쪽으로
->* 참조 멤버 포인터 연산자 왼쪽에서 오른쪽으로
5 * 곱셈 연산자 왼쪽에서 오른쪽으로
/ 나눗셈 연산자 왼쪽에서 오른쪽으로
% 나머지 연산자 왼쪽에서 오른쪽으로
6 + 덧셈 연산자 (이항 연산자) 왼쪽에서 오른쪽으로
- 뺄셈 연산자 (이항 연산자) 왼쪽에서 오른쪽으로
7 << 비트 왼쪽 시프트 연산자 왼쪽에서 오른쪽으로
>> 부호 비트를 확장하면서 비트 오른쪽 시프트 왼쪽에서 오른쪽으로
8 < 관계 연산자(보다 작은) 왼쪽에서 오른쪽으로
<= 관계 연산자(보다 작거나 같은) 왼쪽에서 오른쪽으로
> 관계 연산자(보다 큰) 왼쪽에서 오른쪽으로
>= 관계 연산자(보다 크거나 같은) 왼쪽에서 오른쪽으로
9 == 관계 연산자(와 같은) 왼쪽에서 오른쪽으로
!= 관계 연산자(와 같지 않은) 왼쪽에서 오른쪽으로
10 & 비트 AND 연산자 왼쪽에서 오른쪽으로
11 ^ 비트 XOR 연산자 왼쪽에서 오른쪽으로
12 비트 OR 연산자
13 && 논리 AND 연산자 왼쪽에서 오른쪽으로
14
15 ? : 삼항 조건 연산자 오른쪽에서 왼쪽으로
16 = 대입 연산자 및 복합 대입 연산자
(=, +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, =) 오른쪽에서 왼쪽으로
17 throw 예외 발생 왼쪽에서 오른쪽으로
18 , 쉼표 연산자 왼쪽에서 오른쪽으로