Array Decay

배열 이름은 상황에 따라 첫 요소 포인터가 되거나 배열 자체로 남는다

포인터 산술에서 중요한 것은 주소값 자체가 아니라 한 칸 이동의 단위가 `int`인지 `int[3]`인지 구분하는 것이다.

타입 렌즈
matrix[0] 첫 행의 첫 요소 포인터처럼 동작
한 칸 이동 단위는 `int` 하나다.
matrix 행 배열을 가리키는 포인터처럼 동작
한 칸 이동 단위는 `int[3]` 한 행이다.
&matrix 전체 2차원 배열의 주소
한 칸 이동은 배열 전체 크기만큼 뛴다.
sizeof(matrix) 배열 자체 크기 유지
함수 인자로 넘기기 전에는 전체 크기를 안다.
2 x 3 메모리
r0 c01
r0 c12
r0 c23
r1 c04
r1 c15
r1 c26
`matrix[0] + 1`은 같은 행의 다음 열이고, `matrix + 1`은 다음 행의 시작 위치다.
표현 읽는 타입 한 칸 이동 주의점
matrix[0] + 1 int* 열 하나 [0][1] 위치
matrix + 1 int (*)[3] 행 하나 [1][0] 행 시작
&matrix + 1 전체 배열 포인터 배열 전체 실제 원소 접근용이 아님