หากเราต้องการแก้ไขตัวชี้ (pointer) เอง ไม่ใช่วัตถุที่ตัวชี้ชี้อยู่ เราต้องส่ง pointer โดย reference
ตัวอย่างการส่ง pointer โดย reference:
ตัวอย่างโค้ด
#include <iostream>
using namespace std;
void Decrement(int*& d) {
--d;
}
int main(void) {
int a = 26;
int* ptr = &a; // pointer ที่จะส่ง
// พิมพ์ก่อน decrement
cout << "Before: " << ptr << endl;
Decrement(ptr);
// พิมพ์หลัง increment
cout << "After: " << ptr;
return 0;
}
ผลลัพธ์
Before: 0x6ffe3c After: 0x6ffe38