ตัวชี้คู่หรือตัวชี้ไปยังตัวชี้เป็นตัวแปรที่เก็บที่อยู่ของตัวชี้อื่น
ต่อไปนี้เป็นคำประกาศสำหรับตัวชี้ไปยังตัวชี้ -
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