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

ความแตกต่างระหว่าง Pointer และ Reference Parameter ใน C++

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