Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Khác biệt giữa biến con trỏ và biến tham chiếu trong C++


Tham chiếu (References)

Khi biến khai báo là tham chiếu, nó trở thành tên thay thế cho biến đã tồn tại.

Cú pháp

Type &newname = existing_name;

Khởi tạo

Type &ref = variable_name;

Con trỏ (Pointers)

Con trỏ lưu địa chỉ của biến.

Cú pháp

Type *pointer;

Khởi tạo

Type *pointer = &variable_name;

Các khác biệt chính:

  • Tham chiếu dùng để tham chiếu biến tồn tại bằng tên khác; con trỏ lưu địa chỉ biến.
  • Tham chiếu không thể gán giá trị null; con trỏ có thể.
  • Tham chiếu truyền bằng giá trị (pass by value) nhưng thực chất là alias; con trỏ truyền bằng tham chiếu (pass by reference) - *sửa: con trỏ truyền giá trị con trỏ, nhưng cho phép sửa đối tượng trỏ tới*.
  • Tham chiếu bắt buộc khởi tạo khi khai báo; con trỏ không bắt buộc.
  • Tham chiếu chia sẻ địa chỉ bộ nhớ với biến gốc nhưng cũng chiếm chỗ trên stack; con trỏ có địa chỉ và kích thước riêng trên stack.