int arr[4] = {10, 20, 30, 40};
10arr[0]
20arr[1]
30arr[2]
40arr[3]
&arr[0], p+i는 같은 칸을 다른 말로 읽는다배열 이름은 첫 요소의 주소처럼 쓰이고, 포인터 연산은 요소 단위로 다음 칸을 가리킨다.
int arr[4] = {10, 20, 30, 40};int *p = arr;arr
배열 첫 칸의 주소처럼 사용
arr[0]
arr[0] 또는 *arr
&arr[0]
첫 요소의 실제 주소
arr[0]
*(&arr[0])
p + 2
시작 주소에서 두 요소 이동
arr[2]
*(p + 2) = 30
arr + i
i번째 요소 주소
arr[i]
*(arr + i)
핵심포인터에 1을 더하면 주소 숫자 1이 아니라, 자료형 크기만큼 다음 요소로 이동한다.