array name and pointer

배열 이름, &arr[0], p+i는 같은 칸을 다른 말로 읽는다

배열 이름은 첫 요소의 주소처럼 쓰이고, 포인터 연산은 요소 단위로 다음 칸을 가리킨다.

int arr[4] = {10, 20, 30, 40};

10arr[0]
20arr[1]
30arr[2]
40arr[3]

int *p = arr;

p&arr[0]
시작 주소
10arr[0]
표현 의미 가리키는 칸 값을 얻는 법
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이 아니라, 자료형 크기만큼 다음 요소로 이동한다.