Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

Pointers vs References ใน C++


Pointer (ตัวชี้)

Pointer ใช้เก็บที่อยู่ของตัวแปร

ไวยากรณ์

Type *pointer;

การเริ่มต้น

Type *pointer; pointer = &variable_name;

Reference (อ้างอิง)

เมื่อตัวแปรถูกประกาศเป็น Reference จะกลายเป็นชื่อทางเลือกสำหรับตัวแปรที่มีอยู่แล้ว

ไวยากรณ์

Type &newname = existing_name;

การเริ่มต้น

Type &ref = variable_name;

ความแตกต่างหลักระหว่าง Pointer และ Reference คือ -

  • Reference ใช้เพื่ออ้างถึงตัวแปรที่มีอยู่ด้วยชื่ออื่น ในขณะที่ Pointer ใช้เก็บที่อยู่ของตัวแปร

  • Reference ไม่สามารถมีค่า NULL ได้ แต่ Pointer สามารถมีค่า NULL ได้

  • ตัวแปร Reference สามารถส่งผ่านแบบ Pass by Value ในขณะที่ Pointer สามารถส่งผ่านแบบ Pass by Reference ได้

  • Reference ต้องถูกเริ่มต้นระหว่างการประกาศ ในขณะที่ Pointer ไม่จำเป็น

  • Reference แชร์ที่อยู่หน่วยความจำเดียวกับตัวแปรต้นฉบับ แต่ก็ยังใช้พื้นที่บน Stack ในขณะที่ Pointer มีที่อยู่หน่วยความจำและขนาดของตัวเองบน Stack