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