Pointers (ตัวชี้)
ตัวแปร pointer ใช้เก็บที่อยู่ของตัวแปร
ไวยากรณ์
Type *pointer;
การเริ่มต้น
Type *pointer; Pointer = variable_name;
References (อ้างอิง)
เมื่อพารามิเตอร์ประกาศเป็น reference มันจะกลายเป็นชื่อเรียกอื่นของตัวแปรที่มีอยู่แล้ว
ไวยากรณ์
Type &newname = existing_name;
การเริ่มต้น
Type &pointer; Pointer = variable_name;
ความแตกต่างหลักระหว่าง pointers และ reference parameters:
- References ใช้เรียกตัวแปรที่มีอยู่ด้วยอีกชื่อหนึ่ง ในขณะที่ pointers ใช้เก็บที่อยู่ของตัวแปร
- References ไม่สามารถกำหนดค่า null ได้ แต่ pointer ทำได้
- Reference variable สามารถอ้างอิงได้โดย pass by value ในขณะที่ pointer ต้องใช้ pass by reference
- Reference ต้อง初始化 (initialize) ตอนประกาศ แต่ pointer ไม่จำเป็น
- Reference 分享ที่อยู่หน่วยความจำเดียวกับตัวแปรต้นฉบับ แต่ก็ยังใช้พื้นที่บน Stack ในขณะที่ pointer มีที่อยู่และขนาดของตัวเองบน Stack