포인터 배열
다른 데이터 유형과 마찬가지로 포인터 배열도 선언할 수 있습니다.
선언
datatype *pointername [size];
예를 들어, int *p[5]; // 5개의 정수 요소 주소를 저장할 수 있는 포인터 배열을 나타냅니다.

초기화
'&'는 초기화에 사용됩니다.
예를 들어,
int a[3] = {10,20,30};
int *p[3], i;
for (i=0; i<3; i++) (or) for (i=0; i<3,i++)
p[i] = &a[i];
p[i] = a+i; 액세스
접근시 간접연산자(*)를 사용합니다.
예를 들어,
for (i=0, i<3; i++)
printf ("%d" *p[i]); 예시
#include<stdio.h>
main (){
int a[3] = {10,20,30};
int *p[3],i;
for (i=0; i<3; i++)
p[i] = &a[i]; //initializing base address of array
printf (elements of the array are”)
for (i=0; i<3; i++)
printf ("%d \t", *p[i]); //printing array of pointers
getch();
} 출력
elements at the array are : 10 20 30
포인터에 대한 포인터
포인터에 대한 포인터는 다른 포인터의 주소를 담는 변수입니다.
선언
datatype ** pointer_name;
예를 들어, int **p; //p는 포인터에 대한 포인터입니다.
초기화
'&'는 초기화에 사용됩니다.
예 -
int a = 10; int *p; int **q; p = &a;
액세스
접근시 간접연산자(*)를 사용합니다.
예시
#include<stdio.h>
main (){
int a = 10;
int *p;
int **q;
p = &a;
q = &p;
printf("a =%d",a);
printf("a value through pointer = %d", *p);
printf("a value through pointer to pointer = %d", **q);
} 출력
a=10 a value through pointer = 10 a value through pointer to pointer = 10