pointer(พ้อยเตอร์) คือ ตัวแปรชนิดพิเศษในภาษาซี หน้าที่ของมันจะทำการเก็บตำแหน่งในหน่วยความจำ(address)
ของตัวแปรชนิดอื่นๆ แทนการเก็บข้อมูลเหมือนที่ตัวแปรพื้นฐานทำ ทำให้การใช้งานแตกต่างกับตัวแปรพื้นฐานเนื่องจาก ตัวแปรพ้อยเตอร์
ไม่ได้เก็บค่าโดยตรง แต่เป็นการเก็บตำแหน่งที่ค่านั้นอยู่ แล้วใช้ในการอ้างอิงถึงค่านั้น เพื่อดึงค่านั้นมาใช้งาน การประกาศตัวแปรพ้อยเตอร์
- รูปแบบ ชนิดข้อมูล *ชื่อตัวแปร;
สัญลักษณ์สำคัญที่ทำงานกับพ้อยเตอร์ได้แก่
- & ใช้ดึงค่าตำแหน่งในหน่วยความจำที่เก็บตัวแปร
- * ค่าที่เก็บอยู่ในตำแหน่งที่พ้อยเตอร์นั้นชี้อยู่
โค้ด: เลือกทั้งหมด
#include <stdio.h>
int main() {
int item = 100; //ประกาศตัวแปรทั่วไป
int *total = & item;//ประกาศตัวแปรแบบพ้อยเตอร์
printf("address ของ item :%x\n",&item); //ที่อยู่ที่เก็บค่าของตัวแปร item
printf("ค่าที่เก็บในtotal:%x\n",total);// ที่อยู่ของตัวแปร item ที่ พ้อยเตอร์เก็บไว้
printf("ค่าของตัวแปรที่total ชี้ไป:%d\n",*total);//ค่าที่พ้อยเตอร์ total ชี้อยู่
return 0;
}
- การใช้ตัวแปรพ้อยเตอร์ชี้ไปยังตำแหน่งในหน่วยความจำ ทำให้สามารถเข้าถึงตัวแปรที่่ต้องการได้โดยตรง
- ทำให้การเขียนและอ่านข้อมูลที่มีจำนวนมากๆ มีประสิทธิภาพ
- ช่วยให้จัดสรรหน่วยความจำแบบไดนามิคได้
มีประสิทธิภาพการทำงานมากขึ้นไม่มากก็น้อย
อ้างอิง
https://www.studytonight.com/c/pointers-in-c.php
https://thiti.dev/blog/5474/
https://www.w3schools.in/c-tutorial/pointers/