배열 이름 변환
대부분의 식에서 arr은 첫 요소 주소처럼 동작하지만 sizeof와 &arr에서는 배열 타입이 남습니다.
배열 이름이 포인터처럼 쓰이는 순간과 배열 타입이 유지되는 순간을 구분하면 주소 계산이 흔들리지 않습니다.
대부분의 식에서 arr은 첫 요소 주소처럼 동작하지만 sizeof와 &arr에서는 배열 타입이 남습니다.
ptr + 1은 1바이트가 아니라 포인터가 가리키는 요소 타입 하나의 크기만큼 이동합니다.
char*는 cout에서 주소가 아니라 널 종료 문자열로 출력되는 특별 규칙을 만납니다.
arr, &arr[0], &arr의 타입과 의미를 따로 읽습니다.
포인터 산술의 한 칸이 어떤 요소 크기인지 확인합니다.
마지막 원소 다음 주소는 비교만 하고 역참조하지 않습니다.
C 문자열은 마지막 null 문자가 있는지 함께 봅니다.