Pointer คือสัญลักษณ์ที่ใช้แทนตำแหน่งของหน่วยความจำตัวแปร pointer ทุกชนิดจะใช้ หน่วยความจำ 2 ไบต์ เท่ากันหมด เพราะว่าเอาไว้เก็บตำแหน่งใดๆ ในหน่วยความจำเท่านั้น ซึ่งหน่วยความจำที่เตรียมไว้ให้ตัวแปรต่างๆ มีตำแหน่งตั้งแต่ 0 ถึง 65535 ฉะนั้น 2 ไบต์(16 บิต) จึงเพียงพอในการเก็บค่าดังกล่าว
การดำเนินงาน
Relational =, <>
Dynamic allocation new, dispose
ชนิดของข้อมูลแบบพอยเตอร์
ค่าของข้อมูล เป็น nil คือไม่มีค่า หรือ มีค่าเป็น address ของตัวแปร โครงสร้างของข้อมูล ไม่มีความสัมพันธ์กัน
pointer มีประโยชน์หลายอย่างดังนี้
1. ช่วยประหยัดหน่วยความจำ ไม่ต้องประกาศตัวแปรหลายๆ ครั้งเพื่อ ส่งค่าไปมา โดยเฉพาะการส่งค่าไปมาระหว่างฟังก์ชัน ถ้าเราใช้ pointer มาช่วยในการส่งค่าแบบอ้างอิง ทำให้ใน function ที่รับค่า ไม่จำเป็นต้องประกาศตัวแปรแบบเดียวกันซ้ำอีก จะเห็นได้ชัดเจนในตัวแปรแบบ array
2. ช่วยประหยัดเวลา เพราะการส่งค่าไปมาแล้วเปลี่ยนแปลงค่าที่ส่งหากันระหว่างฟังก์ชันจะทำให้เสียเวลามากกว่า แต่ถ้าเราใช้ตัวแปร pointer เลย ก็จะทำให้เข้าถึงหน่วยความจำในตำแหน่งเดียวกันเลย ทำให้ไม่ต้อง copy ค่าดังกล่าวอีก
3. ช่วยลดข้อจำกัดของ array ที่ว่า
- array ต้องจองเผื่อไว้ แต่ถ้าเราใช้ link-list (เป็นวิธีการทาง pointer ชนิดหนึ่ง) ในการจองหน่วยความจำ เราไม่ต้องจองหน่วยความจำเผื่อไว้เลย
- array ต้องจองหน่วยความจำที่เป็นที่ว่างติดกัน แต่ link-list จองที่ว่างที่ไม่ติดกันได้
- array มีขนาดที่จำกัด ตามที่ว่างที่ติดกันที่เหลืออยู่ในหน่วยความจำภายใน 1 เซ็กเม้น(65536 ไบต์) แต่ link-list จะจองหน่วยความจำได้ไม่จำกัดขึ้นอยู่กับขนาดของหน่วยความจำเลย

ชนิดข้อมูลแบบสตริงค์
ชนิดข้อมูลแบบสตริงค์ ไม่ได้เป็นชนิดข้อมูลมาตรฐานของปาสคาล แต่มีที่ใช้บ่อยมากในการเขียนโปรแกรม ตัวแปรภาษาจึงได้เพิ่มชนิดข้อมูลนี้ขึ้นเป็นชนิดข้อมูลมาตรฐานอีกตัวหนึ่ง ในความเป็นจริงแล้ว ชนิดข้อมูลแบบสตริงค์ก็คือ packed array of char ซึ่งค่าของข้อมูลคือ char และมีโครงสร้างเหมือนอะเรย์ โดยมีการดำเนินงาน ดังนี้
Relational =, <>, <, >, <=, >=, in
Textfile I/O read, readln, write, writeln
Procedure/Functions มีมากมายขึ้นอยู่กับ compiler ที่ใช้
-------------------------------------------------------------------------------------------------