C 프로그래밍 언어에서 포인터에 대한 포인터 또는 이중 포인터는 다른 포인터의 주소를 보유하는 변수입니다.
선언
포인터에 대한 포인터 선언은 다음과 같습니다. -
datatype ** pointer_name;
예를 들어, int **p;
여기서 p는 포인터에 대한 포인터입니다.
초기화
'&'는 초기화에 사용됩니다.
예를 들어,
int a = 10; int *p; int **q; p = &a;
액세스
간접 연산자(*)는 액세스에 사용됩니다.
샘플 프로그램
다음은 이중 포인터를 위한 C 프로그램입니다 -
#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
예시
이제 포인터와 포인터 사이의 관계를 보여주는 또 다른 C 프로그램을 고려하십시오.
#include<stdio.h> void main(){ //Declaring variables and pointers// int a=10; int *p; p=&a; int **q; q=&p; //Printing required O/p// printf("Value of a is %d\n",a);//10// printf("Address location of a is %d\n",p);//address of a// printf("Value of p which is address location of a is %d\n",*p);//10// printf("Address location of p is %d\n",q);//address of p// printf("Value at address location q(which is address location of p) is %d\n",*q);//address of a// printf("Value at address location p(which is address location of a) is %d\n",**q);//10// }
출력
위의 프로그램을 실행하면 다음과 같은 결과가 나온다 -
Value of a is 10 Address location of a is 6422036 Value of p which is address location of a is 10 Address location of p is 6422024 Value at address location q(which is address location of p) is 6422036 Value at address location p(which is address location of a) is 10