การอ้างอิงสามารถเปลี่ยนไปเป็น type ตั้งต้นที่เรียกว่า raw pointer ได้ ซึ่งมันมีลักษณะเหมือนเลขปกติที่ คัดลอกได้เคลื่อนที่ได้โดยแทบจะไม่มีข้อจำกัด ซึ่ง Rust จะไม่รับประกันความถูกต้องของตำแหน่งในหน่วยความจำที่มันจะชี้ไปถึง
raw pointer มีสองแบบ:
*const T
- คือ raw pointer ของข้อมูลจาก type T ที่ไม่ควรมีการเปลี่ยนแปลงเกิดขึ้น*mut T
- คือ raw pointer ของข้อมูลจาก type T ที่เปลี่ยนแปลงได้Raw pointers สามารถแปลงค่าไปเป็นตัวเลขและแปลงกลับได้ (เช่น usize
)
Raw pointers สามารถเข้าถึงข้อมูลได้ด้วยการใช้ unsafe (กล่าวเพิ่มเติมภายหลัง)
รายละเอียดหน่วยความจำ: