---
id: cpp-operators-precedence
title: "C++ Operator Precedence"
category: "Programming_Language"
status: "draft"
verification_status: "conceptual"
canonical_id: ""
aliases: ["order of operations", "parentheses precedence", "C++ 연산자 우선순위"]
duplicate_of: ""
source_trust_level: "B"
confidence_score: 0.83
created_at: 2026-07-04
updated_at: 2026-07-04
review_reason: ""
merge_history: []
tags: ["cpp", "programming-language", "w3schools", "operators", "precedence"]
raw_sources: ["https://www.w3schools.com/cpp/cpp_operators_precedence.asp"]
applied_in: []
github_commit: ""
---

# [[CPP Operator Precedence]]

## 🎯 한 줄 통찰 (One-line insight)
The precedence hierarchy and left-to-right associativity rule are IDENTICAL to C's version, right down to the exact same worked examples (`2 + 3 * 4` = 14, `10 - 2 + 5` = 13) — meaning C++ programmers can reuse C's mental model for expression evaluation without any adjustment, since neither the ranking of operator tiers nor the tie-breaking rule for same-tier operators changed. [S1]

## 🧠 핵심 개념 (Core concepts)
- **Precedence hierarchy (highest to lowest)** — `()` → `*`/`/`/`%` → `+`/`-` → comparison (`>`,`<`,`>=`,`<=`) → equality (`==`,`!=`) → `&&` → `||` → `=`. [S1]
- **Multiplication before addition** — `2 + 3 * 4` evaluates `*` first, giving `14`. [S1]
- **Parentheses override precedence** — `(2 + 3) * 4` forces addition first, giving `20`. [S1]
- **Left-to-right associativity for same-tier operators** — `10 - 2 + 5` evaluates as `(10 - 2) + 5 = 13`. [S1]

## 📖 세부 내용 (Details)
- Precedence demonstration: `int result1 = 2 + 3 * 4; // 14 int result2 = (2 + 3) * 4; // 20`. [S1]
- Left-to-right associativity demonstration: `int result1 = 10 - 2 + 5; // 13 int result2 = 10 - (2 + 5); // 3`. [S1]

## ⚖️ 모순 및 업데이트 (Contradictions & updates)
- 현재까지 발견된 모순 사항 없음 (No contradictions found in available sources). C 챕터와 우선순위표·예제가 완전히 동일함이 확인됨.

## 🛠️ 적용 사례 (Applied in summary)
현재 발견된 실제 적용 사례가 없습니다 — 계산 순서가 애매할 때 항상 괄호를 사용하라는 권고가 C 챕터와 동일하게 강조된다. [S1]

## 💻 코드 패턴 (Code patterns)
Same-precedence operators evaluate strictly left to right unless parentheses override it (C++):
```cpp
int result1 = 10 - 2 + 5;   // (10 - 2) + 5 = 13
int result2 = 10 - (2 + 5); // 10 - 7 = 3
```

## ✅ 검증 상태 및 신뢰도
- **상태:** draft
- **검증 단계:** conceptual
- **출처 신뢰도:** B (W3Schools — widely used educational reference, not a primary standards body)
- **신뢰 점수:** 0.83
- **중복 검사 결과:** 신규 생성 (New discovery)

## 🔗 지식 그래프 (Knowledge Graph)
- **상위/루트:** [[C++ Tutorial]]
- **관련 개념:** [[CPP Operators Logical]], [[CPP Strings]], [[C Operators Precedence]]
- **참조 맥락:** 연산자 섹션 마지막 — 문자열(Strings) 섹션으로 이어짐.

## 📚 출처 (Sources)
- [S1] W3Schools — C++ Operator Precedence — https://www.w3schools.com/cpp/cpp_operators_precedence.asp

## 📝 변경 이력 (Change history)
- 2026-07-04: Initial draft synthesized from the W3Schools "C++ Operator Precedence" page (Astra wiki-curation, P-Reinforce v3.1 format).
