Array Pointer

배열 이름과 포인터 메모리 모델 비교

배열 이름은 많은 식에서 첫 원소 주소로 변환되지만, 배열 자체와 포인터 변수는 같은 것이 아니다.

비슷해 보이지만 다른 지점

memory model

배열 저장 구조

배열은 같은 타입 값들이 연속된 메모리에 놓인다.

Array Name

대부분의 식에서 첫 원소 주소로 변환된다.

Pointer Var

포인터는 주소 값을 저장하는 별도 변수다.

Pointer Math

ptr + 1은 다음 원소 크기만큼 이동한다.

sizeof array

배열 전체 바이트 크기를 반환한다.

sizeof ptr

포인터 변수의 주소 크기만 반환한다.

배열 메모리주소 변환포인터 산술sizeof 차이
주소 구분

배열과 포인터가 비슷하게 보이는 순간은 decay 때문이다. 선언 자체와 sizeof 결과는 분명히 다르다.