---
id: cpp-arrays-multi
title: "C++ Multi-Dimensional Arrays"
category: "Programming_Language"
status: "draft"
verification_status: "conceptual"
canonical_id: ""
aliases: ["2D array", "3D array", "battleship game", "C++ 다차원 배열"]
duplicate_of: ""
source_trust_level: "B"
confidence_score: 0.86
created_at: 2026-07-04
updated_at: 2026-07-04
review_reason: ""
merge_history: []
tags: ["cpp", "programming-language", "w3schools", "arrays", "multidimensional"]
raw_sources: ["https://www.w3schools.com/cpp/cpp_arrays_multi.asp"]
applied_in: []
github_commit: ""
---

# [[CPP Multi-Dimensional Arrays]]

## 🎯 한 줄 통찰 (One-line insight)
The Battleship mini-game demonstrates that a 2D `bool` array can serve as a complete GAME STATE representation — ship positions stored as `true`/`false` grid cells, hit-tracking done by simply flipping a cell to `false` after a hit — showing multi-dimensional arrays aren't just abstract grid storage but a natural fit for representing real interactive state that changes over a program's runtime. [S1]

## 🧠 핵심 개념 (Core concepts)
- **Multi-dimensional array** — "an array of arrays"; each additional `[]` in the declaration adds one more dimension. [S1]
- **2D array (`type name[rows][cols]`)** — declared with two bracket pairs; initialized with nested array literals (`{ {...}, {...} }`). [S1]
- **Dual-index access** — `letters[row][col]` addresses a specific cell; zero-based. [S1]
- **One nested loop per dimension** — a 2D array needs 2 nested loops; a 3D array needs 3. [S1]
- **Grids as game state** — a `bool` 2D array can model ship positions in a Battleship-style game; a hit is registered by flipping the cell's value to `false`. [S1]

## 📖 세부 내용 (Details)
- Creating and accessing a 2D array: `string letters[2][4] = { {"A","B","C","D"}, {"E","F","G","H"} }; cout << letters[0][2]; // "C"`. [S1]
- A 3D array declaration and full triple-nested loop: `string letters[2][2][2] = {...}; for (i...) { for (j...) { for (k...) { cout << letters[i][j][k]; } } }`. [S1]
- Battleship game using a 2D bool array as ship-position state: `bool ships[4][4] = { {0,1,1,0}, {0,0,0,0}, {0,0,1,0}, {0,0,1,0} }; if (ships[row][column]) { ships[row][column] = 0; hits++; }`. [S1]

## ⚖️ 모순 및 업데이트 (Contradictions & updates)
- 현재까지 발견된 모순 사항 없음 (No contradictions found in available sources). C 챕터와 동일한 다차원 배열 구조/접근 방식이 확인됨.

## 🛠️ 적용 사례 (Applied in summary)
4x4 격자에 배 위치를 bool 값으로 저장하고, 명중 시 해당 칸을 0으로 바꾸는 배틀십 미니게임이 원문에서 직접 실전 활용 사례로 제시됨(다차원 배열이 실제 게임 상태를 표현하는 방법). [S1]

## 💻 코드 패턴 (Code patterns)
A 2D bool array modeling ship positions, with a hit flipping the cell to false (C++):
```cpp
bool ships[4][4] = {
  { 0, 1, 1, 0 },
  { 0, 0, 0, 0 },
  { 0, 0, 1, 0 },
  { 0, 0, 1, 0 }
};
if (ships[row][column]) {
  ships[row][column] = 0; // register the hit
  hits++;
}
```

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

## 🔗 지식 그래프 (Knowledge Graph)
- **상위/루트:** [[C++ Tutorial]]
- **관련 개념:** [[CPP Arrays Loop]], [[CPP For Loop Nested]], [[CPP Arrays Omit]]
- **참조 맥락:** 다차원 배열 — 배열 크기 생략(Arrays Omit) 챕터로 이어짐.

## 📚 출처 (Sources)
- [S1] W3Schools — C++ Multi-Dimensional Arrays — https://www.w3schools.com/cpp/cpp_arrays_multi.asp

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