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

포인터와 포인터 사이의 관계를 표시하는 C 프로그램

<시간/>

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