Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
04-20 13:55
관리 메뉴

zyint's blog

배열을 가리키는 포인터 본문

예전글들

배열을 가리키는 포인터

진트­ 2009. 11. 29. 00:00

 

만일 int arr[2][4]라는 배열을 포인터로 가리키려면

int (*pArr)[4] 처럼 포인터를 선언하면 됩니다.

int arr[2][4] = { {1,2,3,4}, {5,6,7,8} };

int (*pArr)[4] = arr;

 

*pArr는 포인터로 int와 [4]는 포인터의 타입을 나타냅니다.

즉, int형 변수로 4칸씩 건너 뛴다는 것을 나타냅니다.

 

linear.png

 

 

 

왼쪽 그림과 같이 int arr[2][4]에서 arr은 배열의 시작부분을 가리키는 배열의 이름이며,

arr+1은 arr[1]을 가리킵니다.

 

arr의 배열이 arr[2][4]이므로, arr에서 1을 더한 arr+1는 4칸을 건너 뛰게 됩니다.

 

 

 

 

 

 

 

포인터 배열과 배열 포인터의  차이점

  • 포인터 배열 int* pArr[4]: 4개의 int* 값을 가지고 있어서 4 개의 int 값을 가리키는 포인터 배열
  • 배열 포인터 int (*pArr)[4]: 크기가 int arr[?][4]인 배열을 가리키는 배열 포인터

 

arraypointer.png

int* pArr[4]int (*pArr)[4]의 비교

 

 

 

참고자료

열혈강의 C 프로그래밍, 18장

 

 

 

이 글은 스프링노트에서 작성되었습니다.

Comments