เป็นตัวชี้ที่สามารถเก็บที่อยู่ของตัวแปรประเภทข้อมูลใด ๆ (หรือ) สามารถชี้ไปที่ตัวแปรประเภทข้อมูลใดก็ได้
ประกาศ
ประกาศสำหรับตัวชี้เป็นโมฆะมีดังนี้ -
void *pointername;
ตัวอย่างเช่น − เป็นโมฆะ *vp;
กำลังเข้าถึง − Type cast operator ใช้สำหรับเข้าถึงค่าของตัวแปรผ่านตัวชี้
ไวยากรณ์
ไวยากรณ์สำหรับตัวชี้เป็นโมฆะได้รับด้านล่าง -
* ( (type cast) void pointer)
ตัวอย่างที่ 1
int i=10;
void *vp;
vp = &i;
printf ("%d", * ((int*) vp));
// int * type cast ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C สำหรับ ตัวชี้โมฆะ −
#include<stdio.h>
main ( ){
int i =10;
float f = 5.34;
void *vp;
vp = &i;
printf ("i = %d", * ((int*)vp));
vp = &f;
printf ( "f = %f", * ((float*) vp));
} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
i = 10 f = 5.34
ตัวอย่างที่ 2
รับด้านล่างเป็นโปรแกรม C สำหรับเลขคณิตตัวชี้ในพอยน์เตอร์เป็นโมฆะ -
#include<stdio.h>
#define MAX 20
int main(){
int array[5] = {12, 19, 25, 34, 46}, i;
void *vp = array;
for(i = 0; i < 5; i++){
printf("array[%d] = %d\n", i, *( (int *)vp + i ) );
}
return 0;
} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
array[0] = 12 array[1] = 19 array[2] = 25 array[3] = 34 array[4] = 46