:: Alice In TechLand ::

[C] 포인터와 배열 본문

====== Study ======/C

[C] 포인터와 배열

별빛 토깽이 2010. 7. 28. 15:58


int a[4] = {2, 3, 5, 7};

위와 같은 배열 a가 있을때 메모리는 어떻게 되는 것일까?

- a[0]가 배열의 첫번째(의 내용)를 가리킨다.

- a[i]는 (a + i)로도 쓸 수 있다.


즉, 아래와 같이 바꿔쓸 수 있다

 a <=> &a[0]           a + i <=> &a[i] 
*a <=> a[0]         *(a + i) <=> a[i]





printf(" %d %d %d %d \n  ", a[0], a[1], *(a+2), *(a+3));

 printf("%d %d ", &a, &*(a+1));             // &를 빼고 printf("%d %d ", a, a+1); 라고 해도 출력값은 같다.

위와 같이 코드를 추가하면

2 3 5 7
3340464  3340468

가 출력된다.






여기서 또 알수 있는것.

3340464 + 4 = 3340468

a가 int형이므로 각 칸이 4byte의 크기를 갖는다.