ตัวแปรอ้างอิงคือนามแฝง นั่นคือชื่ออื่นสำหรับตัวแปรที่มีอยู่แล้ว เมื่อการอ้างอิงเริ่มต้นด้วยตัวแปรแล้ว อาจใช้ชื่อตัวแปรหรือชื่ออ้างอิงเพื่ออ้างถึงตัวแปรได้
ข้อมูลอ้างอิงเทียบกับตัวชี้
การอ้างอิงมักจะสับสนกับพอยน์เตอร์ แต่ความแตกต่างที่สำคัญสามประการระหว่างการอ้างอิงและพอยน์เตอร์คือ -
-
คุณไม่สามารถมีการอ้างอิง NULL คุณต้องสามารถสันนิษฐานได้เสมอว่าข้อมูลอ้างอิงเชื่อมต่อกับอุปกรณ์จัดเก็บข้อมูลที่ถูกต้องตามกฎหมาย
-
เมื่อการอ้างอิงเริ่มต้นกับอ็อบเจ็กต์แล้ว จะไม่สามารถเปลี่ยนแปลงการอ้างอิงไปยังอ็อบเจ็กต์อื่นได้ สามารถชี้ตัวชี้ไปที่วัตถุอื่นได้ตลอดเวลา
-
การอ้างอิงจะต้องเริ่มต้นเมื่อมีการสร้าง สามารถเริ่มต้นตัวชี้ได้ตลอดเวลา
การสร้างข้อมูลอ้างอิงใน C++
คิดว่าชื่อตัวแปรเป็นป้ายกำกับที่แนบกับตำแหน่งของตัวแปรในหน่วยความจำ จากนั้นคุณสามารถนึกถึงข้อมูลอ้างอิงเป็นป้ายกำกับที่สองที่แนบมากับตำแหน่งหน่วยความจำนั้น ดังนั้น คุณจึงสามารถเข้าถึงเนื้อหาของตัวแปรได้โดยใช้ชื่อตัวแปรดั้งเดิมหรือข้อมูลอ้างอิง ตัวอย่างเช่น สมมติว่าเรามีตัวอย่างต่อไปนี้ −
int i = 17;
เราสามารถประกาศตัวแปรอ้างอิงสำหรับ i ได้ดังนี้
int& r = i;
อ่าน &ในการประกาศเหล่านี้เป็นข้อมูลอ้างอิง ดังนั้น อ่านการประกาศครั้งแรกว่า "r คือการอ้างอิงจำนวนเต็มเริ่มต้นที่ i" และอ่านการประกาศครั้งที่สองเนื่องจาก "s เป็นการอ้างอิงสองครั้งที่เริ่มต้นเป็น d"
โค้ดตัวอย่าง
#include <iostream> using namespace std; int main () { // declare simple variables int i; double d; // declare reference variables 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; }
ผลลัพธ์
Value of i : 5 Value of i reference : 5 Value of d : 11.7 Value of d reference : 11.7