티스토리 뷰

이 이유를 알기 위해서는 다음과 같은 소스를 실행해 볼 필요가 있다.

int  main(){
        int arr[] = { 2, 4, 6, 8 };
	printf("index = 0 > %d, ", arr[0]);
	printf("%d\n", *arr);

	printf("index = 2 > %d, ", arr[2]);
	printf("%d\n", *(arr + 2));

	return 0;
}


배열 변수는 첫 번째 항목에 대한 포인터로 사용할 수 있다. 그렇기 때문에 

arr[2]는 *(arr + 2)로 표현이 된다. 즉, 첫번째 배열주소에서 int(4byte)만큼의 주소번지를 이동하여, 다음 값을 읽는다. 


결론 : arr의 경우 첫 주소는 아무 값도 더하지 않는 0부터 시작하게 된다.

댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday