- direct pointer คือ ตัวแปรที่เก็บตำแหน่งของข้อมูลภายในหน่วยความจำโดยตรง
- indirect pointer คือ ตัวแปรที่เก็บตำแหน่งของพอยน์เตอร์อีกตัวหนึ่ง บางครั้งอาจ เรียกว่า pointer to pointer ก็ได้
- ใช้รับค่า address ของตัวแปรชุด (arrays) หรือตัวแปรสตริง (strings variables) จากฟังก์ชันหนึ่งไปยังอีกฟังก์ชันหนึ่ง และใช้ในการส่งค่ากลับมายังฟังก์ชัน
- ใช้ในการจัดการตัวแปรชุดหรือตัวแปรสตริงให้มีประสิทธิภาพ โดยการอ้างอิงตำแหน่งของตัวแปรชุด หรือตัวแปรสตริงที่ต้องการ แทนที่การอ้างอิงชื่อตัวแปรชุดหรือตัวแปรสตริงโดยตรง ทำให้สามารถจัดเก็บและเรียกใช้ข้อมูลที่ต้องการได้ง่าย
- ใช้พอยน์เตอร์ช่วยในการจัดการโครงสร้างข้อมูล เช่น ลิงก์ลิสต์ (linked lists), ไบนารีทรี (binary tree), การจัดเรียงข้อมูล (sort) ชนิดต่าง ๆ เป็นต้น
เราสามารถใช้ตัวแปรพอยน์เตอร์มาช่วยในการรับค่าและส่งคืนค่ากลับในฟังก์ชันที่เขียนขึ้นเองได้ดังนี้
- การส่งค่าไปยังฟังก์ชัน (passing address to function) สามารถทำได้ 2 วิธี
- การส่งค่าข้อมูลไปยังฟังก์ชันที่ต้องการ (passing data values to function) เป็นการส่งค่าข้อมูล 1 ค่าหรือหลายค่าจากฟังก์ชันหนึ่งไปยังอีกฟังก์ชันหนึ่ง คือการคัดลอกค่าข้อมูล (duplicated value) จากที่หนึ่งไปยังอีกที่หนึ่ง
- การส่งตำแหน่งของข้อมูลไปยังฟังก์ชัน (passing address to a function) เป็น การส่งตำแหน่งของข้อมูลไปยังฟังก์ชันที่ต้องการจะต้องใช้ตัวแปรพอยน์เตอร ์มาช่วยในการเก็บตำแหน่งของข้อมูลที่ส่งมา
- การคืนค่ากลับของฟังก์ชัน (returning data from functions)
ขั้นตอนแรก ในโปรแกรมที่ใช้เรียกฟังก์ชัน (calling program) จะต้องใช้วิธีการส่งตำแหน่งของข้อมูลไปยังฟังก์ชัน โดยใช้เครื่องหมาย & นำหน้าชื่อตัวแปรที่ต้องการส่งค่า address ไป
ขั้นตอนที่สอง ในฟังก์ชันที่ถูกเรียกใช้ จะต้องใช้ตัวแปรพอยน์เตอร์มารับค่า address ที่ส่งมาเมื่อต้องการคืนค่ากลับให้ใช้เครื่องหมาย * นำหน้าชื่อตัวแปรพอยน์เตอร์ เพื่อคืนค่ากลับมายังตัวแปรของฟังก์ชัน
นอกจากนำตัวแปรพอยน์เตอร์มาใช้งานกับฟังก์ชันแล้ว เรายังสามารถนำพอยน์เตอร์ใช้งานกับตัวแปรชุด (pointers and arrays) และตัวแปรสตริง (pointers and string) ได้ เพื่อช่วยในการจัดการข้อมูลที่เก็บอยู่ในตัวแปรชุดและตัวแปรสตริงได้ ซึ่งจะช่วยทำให้การจัดเก็บและการเรียกใช้ข้อมูลในตัวแปรชุดและตัวแปรสตริงมีประสิทธิภาพมากขึ้น
0 ความคิดเห็น:
แสดงความคิดเห็น