C++는 풍부한 내장 연산자를 갖고 있다.
표.1 내장 연산자
종류 | 예시 | ||
계산 연산자 | 산술 연산자 | ++, +, *, %, ... | |
불 연산자 | 비교 연산자 | <=, !=, ... | |
논리 연산자 | &&, || | ||
비트 연산자 | ~, <<, >>, &, ^, | | ||
할당 연산자 | =, +=, ... | ||
프로그램 흐름 연산자 | 함수 호출, ?:, | | ||
메모리 처리 연산자 | new, delete | ||
접근 연산자 | ., ->, [ ], *, ... | ||
타입 처리 연산자 | dynamic_cast, typeid, sizeof, alignof, ... | ||
오류 처리 연산자 | throw |
산술 연산자
표.2 산술 연산자
연산 | 표현식 |
후위 증가 후위 감소 |
x++ x-- |
전위 증가 전위 감소 단항 덧셈 단항 뺄셈 |
++x --x +x -x |
곱셈 나눗셈 나머지 |
x * y x / y x % y |
이항 덧셈 이항 뺄셈 |
x + y x - y |
불 연산자
표.3 불 연산자
연산 | 표현식 |
아니다 | !b |
크다 크거나 같다 |
x > y x >= y |
작다 작거나 같다 |
x < y x <= y |
같다 같지 않다 |
x == y x != y |
논리적 AND 논리적 OR |
b && c b || c |
비트 연산자
- 비트 연산자는 정수 타입의 단일 비트를 검사하거나 조작할 수 있게 해준다.
표 4. 비트 연산자
연산 | 표현식 |
NOT(1의 보수) | ~x |
왼쪽 시프트 | x << y |
오른쪽 시프트 | x >> y |
비트 AND | x & y |
비트 OR | x ^ y |
비트 XOR | x | y |
할당 연산자
- 개체의 값은 할당 연산자를 통해 설정할 수 있다.
- 모든 할당 연산자는 모든 산술 연산자, 모든 비트 연산자보다 더 낮은 우선순위를 가진다.
프로그램 흐름
1. 조건 연산자
조건 c를 계산한 뒤 참일 경우 x의 값, 거짓일 경우 y의 값을 가진다.
c ? x : y
2. 콤마 연산자 : 순차적인 계산을 제공하는 연산자
콤마 왼쪽에 있는 하위 표현식을 먼저 계산한 뒤, 오른쪽에 있는 하위 표현식을 계산하는 것이다.
메모리 처리
-
접근 연산자
- C++는 하위 구조 접근, 참조(변수의 주소를 가져옴), 간접 참조(주소를 통해 참조된 메모리에 접근함)를 위한 연산자.
표 5. 접근 연산자
연산 | 표현식 |
멤버 선택 역참조된 멤버 선택 첨자 |
x.m p->m x[i] |
역참조 | *x |
멤버 역참조 역참조된 멤버 역참조 |
x.*q p->*q |
타입 처리
표 6. 타입 처리 연산자
연산 | 표현식 |
런타임 타입 식별 타입 식별 |
typeid(x) typeid(t) |
오브젝트의 크기 타입의 크기 인수의 개수 타입 인수의 개수 맞춤 타입의 맞춤 |
sizeof(x) or sizeof x sizeof(t) sizeof...(p) sizeof...(p) alignof(x) alignof(t) |
오류 처리
- throw 연산자는 실행 시 예외(메모리 부족과 같은...)를 나타내는 데 사용한다.
오버로딩
-
728x90
반응형
'알고리즘' 카테고리의 다른 글
[C++] 함수 (0) | 2021.04.27 |
---|---|
[C++] 표현식과 문장 (0) | 2021.04.26 |
[C++] 변수 (0) | 2021.04.24 |
Python에서의 스택 (0) | 2021.03.21 |
[BOJ/백준] 2003번 - 수들의 합 2 Python (2) | 2021.03.17 |