ความแตกต่างระหว่างตัวชี้ Null และตัวชี้ Void คือตัวชี้ Null เป็นค่าและตัวชี้ Void เป็นประเภทหนึ่ง
ตัวชี้ค่า NULL
ตัวชี้ค่าว่างหมายความว่าไม่ได้ชี้ไปที่สิ่งใด หากไม่มีที่อยู่ที่กำหนดให้กับตัวชี้ ให้ตั้งค่าเป็น null
ประเภทตัวชี้ เช่น int *, char * แต่ละตัวมีค่าตัวชี้เป็นโมฆะ
ไวยากรณ์มีดังนี้ −
<data type> *<variable name> = NULL;
ตัวอย่างเช่น
int *p = NULL; char *p = '\0';
ตัวอย่างโปรแกรม
ต่อไปนี้เป็นโปรแกรม C สำหรับตัวชี้ NULL -
#include<stdio.h> int main(){ printf("TutorialPoint C Programming"); int *p = NULL; // ptr is a NULL pointer printf("\n The value of pointer is: %x ", p); return 0; }
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
TutorialPoint C Programming The value of pointer is: 0
โมฆะพอยน์เตอร์
ตัวชี้เป็นโมฆะไม่มีอะไรนอกจากตัวชี้ที่ไม่มีประเภทข้อมูลด้วย เรียกอีกอย่างว่าตัวชี้วัตถุประสงค์ทั่วไป สามารถเก็บที่อยู่ของข้อมูลได้ทุกประเภท
ไวยากรณ์ของคุณมีดังนี้ -
void *<data type>;
ตัวอย่างเช่น
void *p; int a; char c;
พี =&a; //p เปลี่ยนเป็นตัวชี้จำนวนเต็มตามที่อยู่ของจำนวนเต็มถูกกำหนดให้กับมัน
พี =&c; //p เปลี่ยนเป็นตัวชี้อักขระตามที่อยู่ของอักขระที่ได้รับมอบหมาย
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C สำหรับ Void Pointer -
#include<stdio.h> int main(){ int a = 10; void *ptr = &a; printf("%d", *(int *)ptr); return 0; }
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
10