- 포인터와 연산자
더보기

포인터의 크기

배열의 이름과 포인터

배열의 인덱스와 포인터 연산1

배열의 인덱스와 포인터 연산 2

배열의 인덱스와 포인터 연산 3

배열의 인덱스와 포인터 연산 4

포인터 연산1
- 포인터의 크기

- 배열의 이름도 포인터
배열의 이름도 사실 포인터입니다. 즉 메모리 주소를 저장하고 있습니다.
정확히는 배열의 시작 메모리 주소를 저장하고 있습니다.
- 배열의 이름과 포인터

- 반대로 포인터도 배열이름처럼 첨자 연산자 []를 쓸 수 있습니다.
결국 컴파일러에게 포인터와 배열이름은 동일한 동작 가능하기 때문입니다.
Array[1] == Pointer[1] == *(Array + 1) == *(Pointer + 1);
- 배열의 인덱스와 포인터 연산 1

- 배열의 인덱스와 포인터 연산 2

- pointer to char Vs. pointer to int
pointer to char에 1을 더하면 주소도 1 더해집니다.
pointer to int에 1을 더하면 주소는 4가 더해집니다.
즉, 자료형의 크기만큼 주소도 증가합니다.
포인터에 ++연산을 가하면 다음 메모리 주소를 가르키게끔 설계되어 있단 뜻입니다.
이는 덧셈 뺄셈 증감 모두 적용됩니다.
- 포인터 + 정수의 의미
포인터에 정수 n을 더하거나 빼면 (sizeof(자료형) * n) 만큼 주소 이동됩니다.
- 배열 인덱스의 진짜 의미
“시작 메모리 주소로부터의 떨어진 거리”
떨어진 거리 정도를 다른 말로 오프셋(Offset)이라고도 합니다.
ex) Array[0]는 “배열의 시작 메모리 주소로부터 0만큼 떨어져 있다.”
- 중요 포인트
1.포인터의 크기와 자료형의 크기는 헷갈리지 맙시다.
포인터의 크기는 32bit 플랫폼 기준 4바이트. 64bit는 8바이트.
2.배열은 첫 번째 요소의 메모리 주소와 자료형만 안다면 n 번째 요소도 알 수 있습니다.
- 배열의 인덱스와 포인터 연산 3

- 배열의 인덱스와 포인터 연산 4

- 포인터 연산 1

'C 언어' 카테고리의 다른 글
| [Unreal Engine 8기] C언어 6일차 (0) | 2026.03.03 |
|---|---|
| [Unreal Engine 8기] C언어 5일차 (0) | 2026.02.27 |
| [Unreal Engine 8기] C언어 4일차 (0) | 2026.02.26 |
| [Unreal Engine 8기] C언어 3일차 (0) | 2026.02.25 |
| [Unreal Engine 8기] C언어 2일차 (0) | 2026.02.24 |