/ C, PROGRAMMING

C언어: 포인터 배열과 배열 포인터

포인터 배열

포인터를 저장하는 배열.

int* arr[3]

과 같이 선언한다.

이때, 배열의 요소에는 다른 배열의 주소도 저장 가능하다.

ex)

int a[4];
int b[5];
int c[6];

이 있으면

int* arr[3] = {a,b,c};
arr[0][1] // (= a[1])

과 같이 접근도 가능하다.

배열 포인터

특정한 크기의 배열만을 가리키는 포인터 (그냥 포인터 자료형과는 다른 자료형을 갖는다)

int (*arr)[3] //길이가 3인 int형 배열만을 가리킬 수 있다. (포인터형은 길이 정보를 담고 있으므로)

과 같이 선언한다.

Increment 연산이 포인터를 배열의 길이만큼 증가시킨다! (다른 포인터형과 마찬가지) -> 다차원 배열에서 한 줄씩 건너뛰기 가능!

ex)

int a[3] = {1,2,3};
int (*arr)[3] = &a;

배열 포인터를 통해 배열 요소에 접근하려면?

*arr[0] 과 같이 작성한다.