본문 바로가기

Programming/C Language

포인터 배열

우리는 여태껏 기본자료형의 변수를 요소로 지니는 배열들만 사용해왔다.
하지만 포인터 변수 또한 변수이니 이를 대상으로도 배열선언이 가능하다.


그게 우리가 지금 공부할 포인터 배열 이고 시작하자!


포인터 배열 : 포인터 변수로 이루어진 , 그래서 주소값의 저장이 가능한 배열

포인터 배열의 선언방식

ex)


int *arr1[5]            // 길이가 5인 int형 포인터배열 arr1

double *arr2[30]     // 길이가 30인 double형 포인터배열 arr2


이와같이 우리가 평소 포인터를 선언하는 방법과 배열을 선언하는 방법을 짬뽕한 형태다!

선언에 대해서는 정리할것이 많지않으니 바로 예제로 들어가보겠다.



6행에서 int형 변수 3개를 선언과 동시에 초기화

7행에서 길이3의 int형 포인터 배열을 선언하고 각 배열의 요소에 앞서 선언한 변수들의 주소값을 받는다.

* arr[3] = 

 num1의 주소값

num2의 주소값 

num3의 주소값 

이렇게 정의된다.

그다음 printf를 통해 출력을 한다.
각 포인터 배열요소가 가리키는 변수에 저장된 값을 출력함으로
10,20,30이 출력된다.

이렇듯 포인터 배열 또한 기본 자료형 배열과 별반 다르지 않다 , 다만 주소값을 저장할 수 있도록 포인터 변수를 대상으로 선언된 배열일 뿐이다.



이번에는 문자열 배열에 대해 알아보자!

문자열의 주소값을 저장할 수 있는 배열로써 사실상 char형 포인터 배열이다.

char * strarr[3];            // 길이가 3인 char형 포인터 배열


위의 선언법을 보듯 , char형 포인터 배열은 문자열의 주소값을 저장할 수 있는 배열이다 보니 문자열 배열로 불릴 뿐이다.
예제를 통해 문자열 배열을 알아보자




7행에서 길이가 3인 char형 배열 strarr를 선언하고 3개의 문자열들을 나란히 저장했다.

9~11행에서는 printf함수를 통해 %s로 문자열이 들어있는 배열 요소를 참조하여 출력을 시도한다.








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

다차원 배열  (0) 2017.11.01
Call By Value & Call By Reference  (0) 2017.11.01
포인터 연산  (0) 2017.10.31
포인터와 배열의 관계  (0) 2017.10.31
포인터 정리  (0) 2017.10.31