■ 배열과 포인터는 서로 밀접한 관계를 가진다. 포인터에 정수를 더하여 배열의 각 원소를 가리킬 수 있다.

int arr[10] = {1,2,3,4,5,6,7,8,9,10}
int *parr = &arr[0];
or int *parr = arr;



(1) 배열
: 변수가 여러개 모인것으로 메모리 상에 연속되게 저장한다. 또한 배열의 값은 첫번째 주소값을 가진다. (&arr[0] == arr)


(2) 포인터
: 특정한 데이터의 메모리상의 시작 주소값을 저장한다.


(3) 배열과 포인터
: 배열의 x 번째 원소를 포인터로 가리킬 수 있다.

배열 arr[3] 의 값은 4 이다.
포인터 *(parr + 3) 값도 4 이다.
또한 *parr[3] 역시 4 이다.

arr[3] == *(parr + 3) == *parr[3]

포인터 *parr이 가리키는 것은 배열의 시작 주소를 가리키고 있으므로, + 3 연산을 통해 배열의 4번째 원소를 가리킬 수 있게 된다.


'P rogramming > C Language' 카테고리의 다른 글

2차원 배열의 연산  (0) 2011.10.25
2차원 배열의 포인터  (0) 2011.10.25
포인터의 const  (0) 2011.10.24
ASCII(아스키) 코드표  (0) 2011.10.21
Call by Value & Call by Reference  (0) 2011.10.04
by 민트앤라떼 2011. 10. 25. 11:25