--- id: c-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.84 created_at: 2026-07-04 updated_at: 2026-07-04 review_reason: "" merge_history: [] tags: ["c", "programming-language", "w3schools", "operators", "precedence"] raw_sources: ["https://www.w3schools.com/c/c_operators_precedence.php"] applied_in: [] github_commit: "" --- # [[C Operator Precedence]] ## 🎯 한 줄 통찰 (One-line insight) Same-precedence operators like `+` and `-` are evaluated strictly LEFT TO RIGHT, not right-to-left or by some other rule — `10 - 2 + 5` equals `(10 - 2) + 5 = 13`, not `10 - (2 + 5) = 3` — meaning precedence alone doesn't fully determine evaluation order for operators at the same tier; associativity direction matters too, and parentheses are the only reliable way to override either. [S1] ## 🧠 핵심 개념 (Core concepts) - **Precedence hierarchy (highest to lowest)** — `()` parentheses → `*`/`/`/`%` → `+`/`-` → comparison (`>`,`<`,`>=`,`<=`) → equality (`==`,`!=`) → `&&` → `||` → `=`. [S1] - **Multiplication before addition** — `2 + 3 * 4` evaluates the `*` first, giving `14`, not `20`. [S1] - **Parentheses override precedence entirely** — `(2 + 3) * 4` forces the addition first, giving `20`. [S1] - **Left-to-right associativity for same-tier operators** — `10 - 2 + 5` evaluates as `(10 - 2) + 5 = 13` since `-` and `+` share the same precedence tier and are evaluated left to right. [S1] ## 📖 세부 내용 (Details) - Precedence demonstration: `int result1 = 2 + 3 * 4; // 2 + 12 = 14` versus `int result2 = (2 + 3) * 4; // 5 * 4 = 20`. [S1] - Left-to-right associativity demonstration: `int result1 = 10 - 2 + 5; // (10 - 2) + 5 = 13` versus `int result2 = 10 - (2 + 5); // 10 - 7 = 3`. [S1] ## ⚖️ 모순 및 업데이트 (Contradictions & updates) - **동일 우선순위 연산자의 결합 방향**: +와 -가 같은 우선순위 등급이라도 왼쪽에서 오른쪽으로 순서대로 계산된다는 점이 별도로 확인되며, 괄호 없이는 이 순서를 바꿀 수 없다는 것이 강조됨. [S1] ## 🛠️ 적용 사례 (Applied in summary) 현재 발견된 실제 적용 사례가 없습니다 — 계산 순서가 애매할 때 항상 괄호를 사용하라는 권고가 이 챕터 전체를 관통하는 실전 원칙이다. [S1] ## 💻 코드 패턴 (Code patterns) Same-precedence operators evaluate strictly left to right unless parentheses override it (C): ```c 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.84 - **중복 검사 결과:** 신규 생성 (New discovery) ## 🔗 지식 그래프 (Knowledge Graph) - **상위/루트:** [[C Tutorial]] - **관련 개념:** [[C Bitwise Operators]], [[C Strings]] - **참조 맥락:** 연산자 섹션 마지막 — 문자열(Strings) 섹션으로 이어짐. ## 📚 출처 (Sources) - [S1] W3Schools — C Operator Precedence — https://www.w3schools.com/c/c_operators_precedence.php ## 📝 변경 이력 (Change history) - 2026-07-04: Initial draft synthesized from the W3Schools "C Operator Precedence" page (Astra wiki-curation, P-Reinforce v3.1 format).