--- 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).