Computer >> Máy Tính >  >> Lập trình >> lập trình C

Chương trình C để hiển thị mối quan hệ giữa con trỏ với con trỏ

Trong ngôn ngữ lập trình C, con trỏ tới con trỏ hoặc con trỏ kép là một biến chứa địa chỉ của một con trỏ khác.

Tuyên bố

Dưới đây là khai báo cho con trỏ tới con trỏ -

datatype ** pointer_name;

Ví dụ:int ** p;

Ở đây, p là một con trỏ tới con trỏ.

Khởi tạo

‘&’ Được sử dụng để khởi tạo.

Ví dụ:

int a = 10;
int *p;
int **q;
p = &a;

Đang truy cập

Toán tử hướng dẫn (*) được sử dụng để truy cập

Chương trình mẫu

Sau đây là chương trình C cho con trỏ kép -

#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);
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Giá trị
a=10
a value through pointer = 10
a value through pointer to pointer = 10

Ví dụ

Bây giờ, hãy xem xét một chương trình C khác hiển thị mối quan hệ giữa con trỏ với con trỏ.

#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//
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

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