--- id: cpp-pointers-modify title: "C++ Modify Pointers" category: "Programming_Language" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["mutating through a pointer", "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", "pointers"] raw_sources: ["https://www.w3schools.com/cpp/cpp_pointers_modify.asp"] applied_in: [] github_commit: "" --- # [[CPP Modify Pointers]] ## 🎯 한 줄 통찰 (One-line insight) Assigning `*ptr = "Hamburger";` doesn't change what the POINTER points to — it changes the VALUE at the address the pointer already points to — so the original variable (`food`) changes too, since `ptr` and `food` still reference the exact same memory location; this is the mechanical proof behind why passing a pointer into a function lets that function permanently alter the caller's data. [S1] ## 🧠 핵심 개념 (Core concepts) - **`*ptr = newValue;`** — writes a new value AT the memory address the pointer references, which is the SAME memory the original variable occupies. [S1] - **Original variable changes too** — because `ptr` and the original variable share one memory location, mutating through the pointer is indistinguishable from mutating the variable directly. [S1] ## 📖 세부 내용 (Details) - Full mutation-through-pointer sequence: `string food = "Pizza"; string* ptr = &food; cout << *ptr; // Pizza *ptr = "Hamburger"; cout << *ptr; // Hamburger cout << food; // Hamburger — the original changed too`. [S1] ## ⚖️ 모순 및 업데이트 (Contradictions & updates) - 현재까지 발견된 모순 사항 없음 (No contradictions found in available sources). ## 🛠️ 적용 사례 (Applied in summary) 현재 발견된 실제 적용 사례가 없습니다 — 포인터를 통해 원본 변수의 값을 변경하는 이 메커니즘이 함수에 포인터를 전달해 원본 데이터를 수정하는 실전 패턴(Function Pointer/Reference 챕터)의 근거가 된다. [S1] ## 💻 코드 패턴 (Code patterns) Mutating a value through a pointer changes the original variable (C++): ```cpp string food = "Pizza"; string* ptr = &food; *ptr = "Hamburger"; // Change the value at the pointed-to address cout << food; // Outputs "Hamburger" — the original variable changed ``` ## ✅ 검증 상태 및 신뢰도 - **상태:** draft - **검증 단계:** conceptual - **출처 신뢰도:** B (W3Schools — widely used educational reference, not a primary standards body) - **신뢰 점수:** 0.83 - **중복 검사 결과:** 신규 생성 (New discovery) ## 🔗 지식 그래프 (Knowledge Graph) - **상위/루트:** [[C++ Tutorial]] - **관련 개념:** [[CPP Pointers Dereference]], [[CPP Memory Management]], [[C Pointers]] - **참조 맥락:** 포인터 값 수정 — 메모리 관리(Memory Management) 챕터로 이어짐. ## 📚 출처 (Sources) - [S1] W3Schools — C++ Modify Pointers — https://www.w3schools.com/cpp/cpp_pointers_modify.asp ## 📝 변경 이력 (Change history) - 2026-07-04: Initial draft synthesized from the W3Schools "C++ Modify Pointers" page (Astra wiki-curation, P-Reinforce v3.1 format).