Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 프로그래밍에서 포인터의 배열과 포인터에 대한 포인터의 개념을 설명합니다.

<시간/>

포인터 배열

다른 데이터 유형과 마찬가지로 포인터 배열도 선언할 수 있습니다.

선언

datatype *pointername [size];

예를 들어, int *p[5]; // 5개의 정수 요소 주소를 저장할 수 있는 포인터 배열을 나타냅니다.

C 프로그래밍에서 포인터의 배열과 포인터에 대한 포인터의 개념을 설명합니다.

초기화

'&'는 초기화에 사용됩니다.

예를 들어,

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