30/09/2018, 18:44

Mọi người giúp mình giải thích về reference variable với ạ

Mình cũng đã sử dụng biến tham chiếu không ít nhưng thực sự mình không hiểu tại sao nó lại làm được như vậy nữa. Ví dụ:

#include <iostream>
using namespace std;
int main(){
	int a = 9;
	int& b = a;
	return 0;
}

Như ví dụ trên, ta dễ thấy rằng b là tham chiếu của a. Nhưng mình thắc mắc ở chỗ là. Khi khởi tạo một biến thì nó sẽ có địa chỉ riêng. Vậy tại sao địa chỉ của a và b lại là như nhau? Theo mình hiểu thì một ô nhớ chỉ có thể chứa một giá trị nào đó.

Pham Van Hai viết 20:51 ngày 30/09/2018

Về cơ bản ‘reference’ là một tên khác của biến. Bạn có thể tham khảo thêm bên dưới.

  • A reference is an entity that is an alias for another object.

  • A reference is not a variable as a variable is only introduced by the declaration of an object. An object is a region of storage and, in C++, references do not (necessarily) take up any storage.

  • As objects and references are distinct groups of entities in C++ so the term “reference variable” isn’t meaningful.

stackoverflow.com
sirius79m

What is a reference variable in C++?

c++, reference, variables
asked by sirius79m on 02:10PM - 04 May 10
Văn Dương viết 20:57 ngày 30/09/2018

Chém bừa :
Tham chiếu có thể hình tượng như shortcut trên Windows không nhỉ
Hay nó dạng dạng như con trỏ trong C++.

Nguyễn Văn Dũng viết 20:50 ngày 30/09/2018

Mình nghĩ là lối tắt thì có thể đúng. (Vì tham chiếu là biệt danh của biến)
Còn như con trỏ thì chắc chắn là không phải.

Văn Dương viết 20:46 ngày 30/09/2018

Vì mình có đọc ở đâu đó không biết đúng không là :
Trong C# thì con trỏ là không an toàn nên nó không nên dùng và đã được thay thế bằng References.
Mình thì cũng thấy con trỏ nó có điểm giống references.

Trần Đạt viết 20:56 ngày 30/09/2018

reference variable là một dạng alias trong c++ . Chức năng của tham biến cũng tương tự.
Biến này cho phép bạn tạo một alias tới một biến cùng kiểu trước đó . Ví dụ như sau .

void x(){
   int a=7;int &b=a;//bắt buộc phải gán ref var cho một biến đã khai báo trước đó.
   cout<<a;//output : 7
   cout<<b;//output : 7
   b=1;cout<<a;// outputs :1
   a=7;cout<<b;//outputs: 7 
}
Bài liên quan
0