C++ 기본 제공 연산자, 우선 순위 및 결합성

C++ 언어는 모든 C 연산자를 포함하며 몇 가지 새로운 연산자를 추가합니다. 연산자는 둘 이상의 피연산자에 대해 수행할 평가를 지정합니다.

우선 순위 및 결합성

연산 자 우선 순위 는 둘 이상의 연산자를 포함하는 식의 연산 순서를 지정합니다. 연산 자 연결성은 우선 순위가 같은 여러 연산자를 포함하는 식에서 피연산자가 왼쪽에 있는 피연산자 또는 오른쪽에 있는 연산자를 사용하여 그룹화되는지 여부를 지정합니다.

대체 맞춤법

C++는 일부 연산자용 대체 맞춤법을 지정합니다. C에서는 대체 맞춤법이 iso646.h> 헤더에 <매크로로 제공됩니다. C++에서 이러한 대안은 키워드(keyword) 있으며 iso646.h> 또는 C++ 동등한 <ciso646>의 사용<은 더 이상 사용되지 않습니다. Microsoft C++ /permissive-/Za 에서는 대체 맞춤법을 사용하도록 설정하려면 컴파일러 옵션이 필요합니다.

C++ 연산자 우선 순위 및 결합성 테이블

다음 표에서는 C++ 연산자의 우선 순위와 결합성을 내림차순으로 보여 줍니다. 우선 순위 번호가 같은 연산자는 괄호를 사용하여 다른 관계를 명시적으로 강제하지 않는 한 우선 순위가 같습니다.

연산자 설명 작업 대체
그룹 1 우선 순위, 결합성 없음
범위 확인 ::
그룹 2 우선 순위(왼쪽에서 오른쪽 연결성)
멤버 선택(개체 또는 포인터) . 또는 ->
배열 아래 첨자 []
함수 호출 ()
후위 증가 ++
후위 감소 --
형식 이름 typeid
상수 형식 변환 const_cast
동적 형식 변환 dynamic_cast
재해석된 형식 변환 reinterpret_cast
정적 형식 변환 static_cast
그룹 3 우선 순위, 오른쪽에서 왼쪽 연결
개체 또는 형식의 크기 sizeof
접두사 증가 ++
접두사 감소 --
하나의 보수 ~ compl
논리하지 않음 ! not
단항 부정 -
단항 더하기 +
주소-of &
간접 참조 *
개체 만들기 new
개체 삭제 delete
캐스트 ()
그룹 4 우선 순위(왼쪽에서 오른쪽 연결성)
멤버에 대한 포인터(개체 또는 포인터) .* 또는 ->*
그룹 5 우선 순위(왼쪽에서 오른쪽 연결성)
곱하기 *
나누기 /
계수 %
그룹 6 우선 순위(왼쪽에서 오른쪽 결합성)
더하기 +
빼기 -
그룹 7 우선 순위( 왼쪽에서 오른쪽 결합성)
왼쪽 시프트 <<
오른쪽 시프트 >>
그룹 8 우선 순위(왼쪽에서 오른쪽 연결성)
보다 작음 <
보다 큼 >
작거나 같음 <=
크거나 같음 >=
그룹 9 우선 순위(왼쪽에서 오른쪽 연결성)
등호 ==
같지 않음 != not_eq
그룹 10 우선 순위 왼쪽에서 오른쪽 결합성
비트 AND & bitand
그룹 11 우선 순위(왼쪽에서 오른쪽 연결성)
비트 배타적 OR ^ xor
그룹 12 우선 순위(왼쪽에서 오른쪽 결합성)
비트 포함 OR | bitor
그룹 13 우선 순위(왼쪽에서 오른쪽 결합성)
논리적 AND && and
그룹 14 우선 순위(왼쪽에서 오른쪽 연결성)
논리적 OR || or
그룹 15 우선 순위, 오른쪽에서 왼쪽 결합성
조건부 ? :
양도 =
곱하기 할당 *=
나누기 배정 /=
모듈러스 할당 %=
추가 할당 +=
빼기 할당 -=
왼쪽 시프트 할당 <<=
오른쪽 시프트 할당 >>=
비트 AND 할당 &= and_eq
비트 포함 OR 할당 |= or_eq
비트 배타적 OR 할당 ^= xor_eq
throw 식 throw
그룹 16 우선 순위(왼쪽에서 오른쪽 결합성)
Comma ,

참고 항목

연산자 오버로드