ตัวชี้เป็นตัวแปรที่เก็บที่อยู่ของตัวแปรอื่น
ไวยากรณ์สำหรับพอยน์เตอร์มีดังนี้ −
pointer = &variable;
ประเภทของพอยน์เตอร์
พอยน์เตอร์แบ่งออกเป็น 8 ประเภท ดังนี้ −
-
ตัวชี้ค่าว่าง
-
ตัวชี้เป็นโมฆะ
-
ตัวชี้ไวด์
-
ตัวชี้ห้อย
-
ตัวชี้ที่ซับซ้อน
-
ตัวชี้ใกล้
-
ตัวชี้ไกล
-
ตัวชี้ขนาดใหญ่
ตัวชี้ค่า Null
คุณสร้างตัวชี้ null โดยกำหนดค่า null ในเวลาของการประกาศตัวชี้
วิธีนี้มีประโยชน์เมื่อคุณไม่ได้กำหนดที่อยู่ใดๆ ให้กับตัวชี้ ตัวชี้ค่าว่างมีค่า 0 เสมอ
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C สำหรับตัวชี้ null -
#include <stdio.h> int main(){ int *ptr = NULL; //null pointer printf("The value inside variable ptr is:\n%d",ptr); return 0; }
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
The value inside variable ptr is: 0
โมฆะพอยน์เตอร์
เป็นตัวชี้ที่ไม่มีประเภทข้อมูลที่เกี่ยวข้อง โมฆะพอยน์เตอร์สามารถเก็บที่อยู่ของประเภทใดก็ได้และสามารถพิมพ์เป็นประเภทใดก็ได้
เรียกอีกอย่างว่าตัวชี้ทั่วไปและไม่มีประเภทข้อมูลมาตรฐาน
มันถูกสร้างขึ้นโดยใช้คำหลักเป็นโมฆะ
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C สำหรับตัวชี้โมฆะ -
#include <stdio.h> int main(){ void *p = NULL; //void pointer printf("The size of pointer is:%d\n",sizeof(p)); //size of p depends on compiler return 0; }
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
The size of pointer is:8
ไวลด์พอยน์เตอร์
ไวด์พอยน์เตอร์เรียกอีกอย่างว่าพอยน์เตอร์ที่ไม่ได้กำหนดค่าเริ่มต้น เพราะมันชี้ไปที่ตำแหน่งหน่วยความจำโดยอำเภอใจและอาจทำให้โปรแกรมขัดข้องหรือทำงานไม่ดี
ตัวชี้ C ประเภทนี้ไม่มีประสิทธิภาพ เนื่องจากอาจชี้ไปยังตำแหน่งหน่วยความจำที่ไม่รู้จักซึ่งอาจทำให้เกิดปัญหาในโปรแกรมของเรา ซึ่งอาจนำไปสู่การหยุดทำงานของโปรแกรม
ขอแนะนำให้ใช้ความระมัดระวังในขณะที่ทำงานกับตัวชี้ที่ไม่เหมาะสม
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C สำหรับตัวชี้ไวด์ -
#include <stdio.h> int main(){ int *p; //wild pointer printf("\n%d",*p); return 0; } Process returned -1073741819 (0xC0000005) execution time : 1.206 s Press any key to continue i.e. you won’t get output, some compilers show error message at output