Jiyong's STUDY

2차원 배열 이상의 포인터형과 배열 포인터와 포인터 배열 본문

프로그래밍/C

2차원 배열 이상의 포인터형과 배열 포인터와 포인터 배열

Kingjiyong 2018. 5. 15. 23:54

배열 포인터와 포인터 배열은 혼동하기 쉽다


포인터 배열


포인터 배열은 포인터를 가리키는 배열이다

배열에서 배열이 가리키는 type형에 따라서 배열의 포인터형이 정해지는데


예를 들어 int형 싱글 포인터를 담는 포인터 배열에서의 포인터형은

배열도 일종의 포인터이므로 싱글 포인터를 담는 포인터이므로

int ** 이 된다


즉, int형 싱글 포인터를 담는 포인터 배열이라고 하면


int *arr[]; 이 된다.



type *arr[]; 로 선언하면 된다.


ptr1, ptr2 라는 싱글 포인터 두 개를 담는 포인터 배열을 선언과 함께 초기화를 하려면


int *arr[2]={&ptr1, &ptr2};

의 방식으로 선언한다.



배열 포인터


배열 포인터는 배열을 가리키는 포인터다

1차원 배열은 포인터의 형이 싱글 포인터와 같으므로 더블 포인터로 담으면 되지만


2차원 배열 이상의 경우에는 포인터 형이 달라진다

가로 세로 길이가 10인 2차원 배열의 포인터 형을 알아보면

type *arr[10]이 된다.


즉, 이 때의 배열 포인터는


 int (*arr)[10]; 이 된다.



type (*arr)[세로길이]; 로 선언하면 된다.

'프로그래밍 > C' 카테고리의 다른 글

함수 포인터  (0) 2018.05.16
C언어의 main함수와 argc, argv  (0) 2018.05.16
문자열을 정수로 변환하는 함수들  (0) 2018.05.15
strcmp, strncmp 설명, 비교  (0) 2018.05.15
strcat, strncat 설명, 비교  (0) 2018.05.15