การอ้างอิง C ++

ตัวแปรอ้างอิงคือนามแฝงนั่นคือชื่ออื่นสำหรับตัวแปรที่มีอยู่แล้ว เมื่อเริ่มต้นการอ้างอิงด้วยตัวแปรแล้วอาจใช้ชื่อตัวแปรหรือชื่ออ้างอิงเพื่ออ้างถึงตัวแปร

การอ้างอิงเทียบกับตัวชี้

การอ้างอิงมักสับสนกับตัวชี้ แต่ความแตกต่างที่สำคัญสามประการระหว่างการอ้างอิงและตัวชี้คือ -

  • คุณไม่สามารถมีการอ้างอิง NULL คุณต้องสามารถสันนิษฐานได้เสมอว่าข้อมูลอ้างอิงเชื่อมต่อกับส่วนจัดเก็บข้อมูลที่ถูกต้องตามกฎหมาย

  • เมื่อเริ่มต้นการอ้างอิงไปยังอ็อบเจ็กต์แล้วจะไม่สามารถเปลี่ยนเป็นการอ้างถึงอ็อบเจ็กต์อื่นได้ ตัวชี้สามารถชี้ไปที่วัตถุอื่นได้ตลอดเวลา

  • การอ้างอิงต้องเริ่มต้นเมื่อสร้างขึ้น พอยน์เตอร์สามารถเริ่มต้นได้ตลอดเวลา

การสร้างการอ้างอิงใน C ++

คิดว่าชื่อตัวแปรเป็นป้ายกำกับที่ติดกับตำแหน่งของตัวแปรในหน่วยความจำ จากนั้นคุณสามารถคิดว่าการอ้างอิงเป็นป้ายกำกับที่สองที่ติดกับตำแหน่งหน่วยความจำนั้น ดังนั้นคุณสามารถเข้าถึงเนื้อหาของตัวแปรผ่านชื่อตัวแปรดั้งเดิมหรือการอ้างอิง ตัวอย่างเช่นสมมติว่าเรามีตัวอย่างต่อไปนี้ -

int i = 17;

เราสามารถประกาศตัวแปรอ้างอิงสำหรับ i ได้ดังนี้

int& r = i;

อ่าน & ในประกาศเหล่านี้เป็น reference. ดังนั้นให้อ่านคำประกาศแรกว่า "r คือการอ้างอิงจำนวนเต็มเริ่มต้นเป็น i" และอ่านการประกาศครั้งที่สองเป็น "s เป็นการอ้างอิงสองครั้งที่เริ่มต้นเป็น d" ตัวอย่างต่อไปนี้ใช้การอ้างอิงเกี่ยวกับ int และ double -

#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

โดยปกติการอ้างอิงจะใช้สำหรับรายการอาร์กิวเมนต์ของฟังก์ชันและค่าที่ส่งคืนของฟังก์ชัน ดังนั้นต่อไปนี้เป็นสองหัวข้อสำคัญที่เกี่ยวข้องกับการอ้างอิง C ++ ซึ่งควรชัดเจนสำหรับโปรแกรมเมอร์ C ++ -

ซีเนียร์ No แนวคิดและคำอธิบาย
1 การอ้างอิงเป็นพารามิเตอร์

C ++ สนับสนุนการส่งผ่านการอ้างอิงเป็นพารามิเตอร์ของฟังก์ชันปลอดภัยกว่าพารามิเตอร์

2 อ้างอิงเป็นค่าส่งคืน

คุณสามารถส่งคืนการอ้างอิงจากฟังก์ชัน C ++ เหมือนกับข้อมูลประเภทอื่น ๆ