C + + 기본 제공 연산자, 우선 순위 및 결합성C++ built-in operators, precedence, and associativity

C++ 언어는 모든 C 연산자를 포함하며 몇 가지 새로운 연산자를 추가합니다.The C++ language includes all C operators and adds several new operators. 연산자는 둘 이상의 피연산자에 대해 수행할 평가를 지정합니다.Operators specify an evaluation to be performed on one or more operands.

우선 순위 및 연관성Precedence and associativity

연산자 우선 순위 는 연산자가 둘 이상 포함 된 식의 작업 순서를 지정 합니다.Operator precedence specifies the order of operations in expressions that contain more than one operator. 연산자 결합성 은 우선 순위가 같은 여러 연산자를 포함 하는 식에서 피연산자가 왼쪽 또는 오른쪽에 있는 연산자와 함께 그룹화 되는지 여부를 지정 합니다.Operator associativity specifies whether, in an expression that contains multiple operators with the same precedence, an operand is grouped with the one on its left or the one on its right.

대체 단어Alternative spellings

C + +에서는 일부 연산자에 대 한 대체 철자를 지정 합니다.C++ specifies alternative spellings for some operators. C에서는 대체 철자를 헤더에 매크로로 제공 합니다 <iso646.h> .In C, the alternative spellings are provided as macros in the <iso646.h> header. C + +에서 이러한 대안은 키워드이 고 또는를 사용 <iso646.h> 하는 것 <ciso646> 은 사용 되지 않습니다.In C++, these alternatives are keywords, and use of <iso646.h> or the C++ equivalent <ciso646> is deprecated. Microsoft c + +에서 /permissive- 또는 /Za 컴파일러 옵션은 대체 단어를 사용 하도록 설정 하는 데 필요 합니다.In Microsoft C++, the /permissive- or /Za compiler option is required to enable the alternative spellings.

C + + 연산자 우선 순위 및 결합성 테이블C++ operator precedence and associativity table

다음 표에서는 C++ 연산자의 우선 순위와 결합성을 내림차순으로 보여 줍니다.The following table shows the precedence and associativity of C++ operators (from highest to lowest precedence). 우선 순위 번호가 같은 연산자는 괄호를 사용하여 다른 관계를 명시적으로 강제하지 않는 한 우선 순위가 같습니다.Operators with the same precedence number have equal precedence unless another relationship is explicitly forced by parentheses.

연산자 설명Operator Description 연산자Operator 대체Alternative
그룹 1 우선 순위, 결합성 없음Group 1 precedence, no associativity
범위 확인Scope resolution ::
그룹 2 우선 순위, 왼쪽에서 오른쪽으로의 결합성Group 2 precedence, left to right associativity
멤버 선택(개체 또는 포인터)Member selection (object or pointer) . 디스크나 ->. or ->
배열 첨자Array subscript []
함수 호출Function call ()
후위 증가Postfix increment ++
후위 감소Postfix decrement --
형식 이름Type name typeid
상수 형식 변환Constant type conversion const_cast
동적 형식 변환Dynamic type conversion dynamic_cast
재해석 형식 변환Reinterpreted type conversion reinterpret_cast
정적 형식 변환Static type conversion static_cast
그룹 3 우선 순위, 오른쪽에서 왼쪽으로의 연관성Group 3 precedence, right to left associativity
개체 또는 형식의 크기Size of object or type sizeof
전위 증가Prefix increment ++
전위 감소Prefix decrement --
1의 보수One's complement ~ compl
논리적 notLogical not ! not
단항 부정 연산자Unary negation -
단항 더하기Unary plus +
Address-ofAddress-of &
간접 참조Indirection *
개체 만들기Create object new
개체 삭제Destroy object delete
캐스팅이Cast ()
그룹 4 우선 순위, 왼쪽에서 오른쪽으로 결합성Group 4 precedence, left to right associativity
멤버 포인터(개체 또는 포인터)Pointer-to-member (objects or pointers) .* 디스크나 ->*.* or ->*
그룹 5 우선 순위, 왼쪽에서 오른쪽으로 결합성Group 5 precedence, left to right associativity
*Multiplication *
문이나Division /
모듈러스Modulus %
그룹 6 우선 순위, 왼쪽에서 오른쪽으로 결합성Group 6 precedence, left to right associativity
또한Addition +
빼기Subtraction -
그룹 7 우선 순위, 왼쪽에서 오른쪽으로의 결합성Group 7 precedence, left to right associativity
왼쪽 시프트Left shift <<
오른쪽 시프트Right shift >>
그룹 8 우선 순위, 왼쪽에서 오른쪽으로의 결합성Group 8 precedence, left to right associativity
보다 작음Less than <
보다 큼Greater than >
작거나 같음Less than or equal to <=
크거나 같음Greater than or equal to >=
그룹 9 우선 순위, 왼쪽에서 오른쪽으로의 결합성Group 9 precedence, left to right associativity
등호Equality ==
같지 않음Inequality != not_eq
그룹 10 우선 순위 왼쪽에서 오른쪽 결합성Group 10 precedence left to right associativity
비트 ANDBitwise AND & bitand
그룹 11 우선 순위, 왼쪽에서 오른쪽으로 결합성Group 11 precedence, left to right associativity
배타적 비트 ORBitwise exclusive OR ^ xor
그룹 12 우선 순위, 왼쪽에서 오른쪽으로의 결합성Group 12 precedence, left to right associativity
포괄적 비트 ORBitwise inclusive OR | bitor
그룹 13 우선 순위, 왼쪽에서 오른쪽으로 결합성Group 13 precedence, left to right associativity
논리적 ANDLogical AND && and
그룹 14 우선 순위, 왼쪽에서 오른쪽으로 결합성Group 14 precedence, left to right associativity
논리적 ORLogical OR || or
그룹 15 우선 순위, 오른쪽에서 왼쪽으로의 연관성Group 15 precedence, right to left associativity
조건부Conditional ? :
할당Assignment =
곱하기 할당Multiplication assignment *=
나누기 할당Division assignment /=
모듈러스 대입Modulus assignment %=
더하기 할당Addition assignment +=
빼기 할당Subtraction assignment -=
왼쪽 시프트 할당Left-shift assignment <<=
오른쪽 시프트 할당Right-shift assignment >>=
비트 AND 대입Bitwise AND assignment &= and_eq
포괄적 비트 OR 대입Bitwise inclusive OR assignment |= or_eq
배타적 비트 OR 대입Bitwise exclusive OR assignment ^= xor_eq
throw 식throw expression throw
그룹 16 우선 순위, 왼쪽에서 오른쪽으로 결합성Group 16 precedence, left to right associativity
쉼표Comma ,,

참고 항목See also

연산자 오버로드Operator overloading