อาเรย์ของพอยน์เตอร์เป็นประเภทข้อมูลอาเรย์มาตรฐานที่เก็บลำดับของหน่วยความจำที่จ่าหน้าถึงชนิดข้อมูลซึ่งต่างจากการเก็บสเกลาร์ชนิดอื่นเช่นจำนวนเต็มหรือจำนวนจุดลอยตัว โดยการใช้อาเรย์ของพอยน์เตอร์โปรแกรมจะสามารถมีอาเรย์เกือบทุกประเภทข้อมูลโครงสร้างข้อมูลคลาสหรือแม้แต่ฟังก์ชั่น การเรียงลำดับของพอยน์เตอร์ที่มีประสิทธิภาพก็เป็นไปได้เช่นกันหากต้องการที่อยู่สามารถจัดตำแหน่งตามตำแหน่งทางกายภาพในหน่วยความจำของคอมพิวเตอร์ ภาวะแทรกซ้อนบางอย่างในการใช้อาร์เรย์ของพอยน์เตอร์คือข้อมูลสามารถเสียหายได้ง่ายและประเภทของข้อมูลที่ชี้ไปยังจำเป็นต้องได้รับการจัดการภายในเพื่อป้องกันปัญหาหน่วยความจำล้น
ภาษาการเขียนโปรแกรมบางภาษาไม่อนุญาตให้มีพอยน์เตอร์พอยน์เตอร์เนื่องจากมีแนวคิดที่คิดมาตั้งแต่แรก ภาษาระดับสูงที่ทำให้การจัดการหน่วยความจำโดยอัตโนมัติไม่ใช้พอยน์เตอร์ในลักษณะเดียวกับภาษาระดับล่างแม้ว่าในทางเทคนิคแล้วอาเรย์ของคลาสอ็อบเจ็กต์ในระดับสูงภาษาเชิงวัตถุเป็นอาเรย์ของพอยน์เตอร์ แม้กระนั้นก็ตามพวกเขาไม่สามารถใช้หรือจัดการในลักษณะเดียวกัน ในภาษาระดับต่ำอาร์เรย์จะเก็บค่าจำนวนเต็มซึ่งเป็นที่อยู่โดยตรงของตัวชี้ในฮีปหน่วยความจำ ในภาษาระดับสูงส่วนใหญ่ฟังก์ชั่นนี้เป็นไปไม่ได้แม้ว่าจะมีกระบวนทัศน์ทางเลือกอื่นอยู่ก็ตาม
ด้านหนึ่งที่ทำให้อาร์เรย์ของพอยน์เตอร์มีค่าเป็นเครื่องมือการเขียนโปรแกรมคือพอยน์เตอร์สามารถอ้างอิงข้อมูลประเภทใดก็ได้ที่มี ตัวชี้เป็นชนิดข้อมูลในตัวเองแม้ว่าจุดประสงค์เดียวคือชี้ไปที่ชนิดข้อมูลอื่น ซึ่งหมายความว่าอาร์เรย์ของพอยน์เตอร์สามารถมีชนิดข้อมูลที่หลากหลายในอาร์เรย์เดียวกันแม้ว่าโปรแกรมจะต้องมีกลไกในการติดตามสิ่งที่ตัวชี้แต่ละตัวอ้างอิง
ลักษณะที่มีประสิทธิภาพของพอยน์เตอร์คือสามารถชี้ไปที่คอมไพล์โค้ดโปรแกรมในหน่วยความจำได้ สิ่งนี้ทำให้อาเรย์ชี้ไปที่ฟังก์ชันไม่ใช่แค่ข้อมูล อาเรย์ของฟังก์ชั่นสามารถอนุญาตให้อ้างอิงตัวเลขแบบไดนามิกของรหัส สิ่งนี้มีประโยชน์เมื่อตั้งโปรแกรมตัวแปลภาษาหรือซอฟต์แวร์ประเภทอื่นที่จำเป็นต้องเรียกใช้ฟังก์ชั่นบางอย่างจากอินพุตที่ไม่สามารถคาดเดาได้โดยไม่จำเป็นต้องมีคำสั่งที่มีเงื่อนไขขนาดใหญ่เช่นสวิตช์บล็อก
ปัญหาบางอย่างที่นำเสนอโดยอาเรย์ของข้อมูลตัวชี้มีความเป็นไปได้ที่จะสูญเสียที่อยู่ป้องกันหน่วยความจำนั้นไม่ให้เป็นอิสระในภายหลังและโอกาสที่ที่อยู่อาจเสียหายได้ผ่านการดำเนินการโดยไม่ได้ตั้งใจเช่นการเพิ่ม ความพยายามในการเข้าถึงที่อยู่ที่ไม่ถูกต้องอาจนำไปสู่ข้อมูลที่เสียหายที่ถูกอ่านหรือในกรณีที่รุนแรงเช่นการเริ่มต้นล้มเหลวข้อผิดพลาดในการแบ่งส่วนที่อาจทำให้โปรแกรมสิ้นสุดโดยไม่คาดคิด การเขียนโปรแกรมที่ระมัดระวังสามารถช่วยลดความเป็นไปได้ของเหตุการณ์เหล่านี้


