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

แยกความแตกต่างของตัวชี้ NULL ด้วยตัวชี้เป็นโมฆะในภาษา C


ความแตกต่างระหว่างตัวชี้ 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