Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

อธิบายแนวคิดของ pointer to pointer และ void pointer ในภาษา 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 of pointer = %d", *p);
   printf("A value of double pointer = %d", **q);
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

A=10
A value of pointer = 10
A value of double pointer = 10

ตัวชี้เป็นโมฆะ

เป็นประเภทของตัวชี้ที่สามารถเก็บที่อยู่ของตัวแปรประเภทข้อมูลใด ๆ (หรือ) สามารถชี้ไปที่ตัวแปรประเภทข้อมูลใดก็ได้

ต่อไปนี้เป็นคำประกาศสำหรับตัวชี้โมฆะ -

void *pointername;

ตัวอย่างเช่น เป็นโมฆะ *vp;

กำลังเข้าถึง − Type cast operator ใช้สำหรับเข้าถึงค่าของตัวแปรผ่านตัวชี้

ไวยากรณ์มีดังนี้ −

* ( (type cast) void pointer)

ตัวอย่างเช่น

int i=10;
void *vp;
vp = &i;
printf ("%d", * ((int*) vp));
type cast

ตัวอย่าง

ต่อไปนี้เป็นโปรแกรม C สำหรับตัวชี้โมฆะ -

#include<stdio.h>
main ( ){
   int i =10;
   float f = 5.34;
   void *vp;
   clrscr ( );
   vp = &i;
   printf ("i = %d", * ((int*)vp));
   vp = &f;
   printf ( "f = %f", * ((float*) vp));
   getch ( );
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

i = 10
f = 5.34