Một biến tham chiếu là một bí danh, tức là một tên khác cho một biến đã tồn tại. Khi tham chiếu được khởi tạo với một biến, có thể dùng tên biến hoặc tên tham chiếu để truy cập biến đó.
Tham chiếu so với Con trỏ
Tham chiếu thường bị nhầm lẫn với con trỏ, nhưng có ba khác biệt chính:
Không thể có tham chiếu NULL. Luôn phải giả định tham chiếu liên kết với một vùng nhớ hợp lệ.
Một khi tham chiếu được khởi tạo cho một đối tượng, không thể thay đổi để tham chiếu đến đối tượng khác. Con trỏ có thể trỏ đến đối tượng khác bất kỳ lúc nào.
Tham chiếu phải được khởi tạo khi tạo ra. Con trỏ có thể khởi tạo sau.
Tạo tham chiếu trong C++
Hãy coi tên biến như một nhãn gắn vào vị trí bộ nhớ của biến. Tham chiếu là nhãn thứ hai gắn vào cùng vị trí đó. Do đó, có thể truy cập nội dung biến qua tên gốc hoặc tham chiếu. Ví dụ:
int i = 17;
Có thể khai báo biến tham chiếu cho i như sau:
int& r = i;
Dấu & trong khai báo đọc là "tham chiếu". Do đó, khai báo đầu đọc là "r là tham chiếu nguyên khởi tạo bằng i".
Ví dụ mã
#include <iostream>
using namespace std;
int main() {
// khai báo biến đơn giản
int i;
double d;
// khai báo biến tham chiếu
int& r = i;
double& s = d;
i = 5;
cout << "Value of i : " << i << endl;
cout << "Value of i reference : " << r << endl;
d = 11.7;
cout << "Value of d : " << d << endl;
cout << "Value of d reference : " << s << endl;
return 0;
}
Kết quả
Value of i : 5 Value of i reference : 5 Value of d : 11.7 Value of d reference : 11.7