포인터 변수로 이루어져서 주소 값의 저장이 가능한 배열을 포인터 배열이라고 한다. 포인터 배열은 다음과 같이 선언한다. 

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

포인터 배열의 선언은 기본 자료형 배열의 선언과 비슷하다.

 

#include <stdio.h>

int main(void)
{
    int num1=10, num2=20, num3=30;
    int *arr[3] = {&num1,&num2,&num3};

    printf("%d\n", *arr[0]);
    printf("%d\n", *arr[1]);
    printf("%d\n", *arr[2]);
    return 0;
}
/* output : 
10
20
30
*/

위 코드와 같이 배열과 비슷하게 선언하지만 포인터 배열은 주소값을 저장할 수 있고 주소값으로 접근할 수 있다.

 

다음과 같이 문자열도 포인터 배열로 저장할 수 있다.

#include <stdio.h>

int main(void)
{
    char *strArr[3] = {"simple", "string", "array"};
    printf("%s\n", strArr[0]);
    printf("%s\n", strArr[1]);
    printf("%s\n", strArr[2]);
    return 0;
}
/* output :
simple
string
array
*/

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

[C] Call - by - value, Call - by - reference  (0) 2020.12.20
[C] 함수 인자로 배열 전달  (0) 2020.12.20
[C] 문자열 포인터  (0) 2020.12.18
[C] 포인터 연산  (0) 2020.12.17
[C] 포인터와 배열  (0) 2020.12.17

+ Recent posts