นี่เป็นตัวอย่างง่ายๆ ในการส่งตัวชี้และส่งต่อโดยอ้างอิง -
ผ่านตัวชี้
#include <iostream> using namespace std; void swap(int* a, int* b) { int c = *a; *a= *b; *b = c; } int main() { int m = 7, n = 6; cout << "Before Swap\n"; cout << "m = " << m << " n = " << n << "\n"; swap(&m, &n); cout << "After Swap by pass by pointer\n"; cout << "m = " << m << " n = " << n << "\n"; }
ผลลัพธ์
Before Swap m = 7 n = 6 After Swap by pass by pointer m = 6 n = 7
ผ่านโดยอ้างอิง
#include <iostream> using namespace std; void swap(int& a, int& b) { int c = a; a= b; b = c; } int main() { int m =7, n = 6; cout << "Before Swap\n"; cout << "m = " << m << " n = " << n << "\n"; swap(m, n); cout << "After Swap by pass by reference\n"; cout << "m = " << m << " n = " << n << "\n"; }
ผลลัพธ์
Before Swap m = 7 n = 6 After Swap by pass by reference m = 6 n = 7
ดังนั้น หากเราส่งพารามิเตอร์ไปยังฟังก์ชันไม่ว่าจะโดยผ่านพอยน์เตอร์หรือส่งผ่านโดยการอ้างอิง ก็จะให้ผลลัพธ์เช่นเดียวกัน ข้อแตกต่างเพียงอย่างเดียวคือการอ้างอิงใช้เพื่ออ้างอิงตัวแปรที่มีอยู่ในชื่ออื่นในขณะที่ตัวชี้ถูกใช้เพื่อเก็บที่อยู่ของตัวแปร ใช้การอ้างอิงได้อย่างปลอดภัยเพราะไม่สามารถเป็น NULL ได้