티스토리 뷰
반응형
🧭 C언어 2차원 배열과 포인터 정리
📌 2차원 배열의 메모리 구조
2차원 배열을 선언합니다:
int arr[3][3] = {
1, 2, 3,
4, 5, 6,
7, 8, 9
};
메모리 안에는 이렇게 저장됩니다:
[1][2][3][4][5][6][7][8][9]
즉, row-major order로 1차원 배열처럼 일렬로 저장됩니다.
그렇다면 여기서 arr[1]에 저장된 값은 일렬로 저장된 배열에서처럼 2가 저장돼 있을까요?
이를 하나씩 살펴보기로 합니다.
📌 포인터가 가리키는 위치
2차원 배열에서 포인터로 접근할 때, 표현에 따라 가리키는 의미가 달라집니다.
🔷 arr
arr는 배열의 이름이고, 타입은 int[3][3]입니다.
하지만 포인터처럼 쓰일 때는 첫 번째 행 전체의 주소입니다.
즉:
arr ≡ &arr[0]
메모리상:
arr → [1][2][3]
🔷 arr[0]
arr[0]은 배열의 첫 번째 행의 이름입니다.
타입은 int[3], 메모리 주소로는 &arr[0][0]입니다.
메모리상:
arr[0] → [1][2][3]
🔷 arr[1]
arr[1]은 배열의 두 번째 행의 이름입니다.
타입은 int[3], 메모리 주소로는 &arr[1][0]입니다.
메모리상:
arr[1] → [4][5][6]
🔷 &arr[1][0]
&arr[1][0]은 배열의 두 번째 행 첫 번째 요소의 주소입니다.
이것은 arr[1]과 동일한 주소입니다.
하지만 타입은 int*입니다.
메모리상:
&arr[1][0] → [4]
📌 요약 도식
아래 도식은 각 표현과 메모리의 대응을 나타냅니다.
메모리: [1][2][3][4][5][6][7][8][9] 표현 → 가리키는 메모리 -------------------------------- arr → [1][2][3] (첫 번째 행) arr[0] → [1][2][3] (첫 번째 행) arr[1] → [4][5][6] (두 번째 행) &arr[0][0] → [1] (첫 번째 요소) &arr[1][0] → [4] (두 번째 행 첫 번째 요소)
📌 타입 차이
주소값은 동일하지만, 선언된 타입이 달라 포인터 연산에 차이가 납니다.
📌 핵심 요약
- ✅ 2차원 배열도 메모리에선 1차원 배열처럼 연속 저장됩니다.
- ✅
arr[1]과&arr[1][0]은 같은 메모리 위치를 가리킵니다. - ✅
arr[1]은int[3]배열 이름이고,&arr[1][0]은int*입니다. - ✅ 타입이 다르지만 주소는 같습니다.
📌 정리 도식
[1][2][3][4][5][6][7][8][9] ↑ ↑ arr arr[1] ≡ &arr[1][0]
반응형
'C언어' 카테고리의 다른 글
| C언어에서 문자열 포인터와 서식문자(%c, %s) (0) | 2025.07.15 |
|---|---|
| C언어 구조체 포인터의 점(.)과 화살표(->) 차이 설명 (0) | 2025.07.15 |
| C언어 printf 소수점 출력 완전 정리 (0) | 2025.07.13 |
| 비트연산자 << 와 >> 총정리 (0) | 2025.07.10 |
| 포인터 증감 연산 완전정복 (0) | 2025.07.07 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- c언어
- 객체지향
- 파이썬
- HTML
- 그래프 탐색
- 코딩
- dfs
- 알고리즘
- 알고리즘기초
- 파이썬코딩
- 프로그래머스
- 그리디알고리즘
- 문제 풀이
- 문자열처리
- 브루트포스
- DP
- 프로그래밍
- C++
- python 알고리즘
- 알고리즘문제풀이
- Python
- 동적계획법
- 상속
- 코딩테스트
- 문제풀이
- 동적 계획법
- 백준
- 코딩 테스트
- 알고리즘 문제풀이
- 그리디
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
글 보관함
반응형