티스토리 뷰
이 이유를 알기 위해서는 다음과 같은 소스를 실행해 볼 필요가 있다.
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부터 시작하게 된다.
'Language > C' 카테고리의 다른 글
[C언어] 함수 포인터 (0) | 2013.10.02 |
---|---|
[C언어] 포인터와 const (0) | 2013.10.01 |
[C언어] 문자열 포인터 (0) | 2013.10.01 |
[C언어] scanf()와 fgets()의 차이 (0) | 2013.10.01 |
[C언어] int main()과 void main(), float main().... 의 차이 (0) | 2013.10.01 |
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
- Total
- Today
- Yesterday