Một con trỏ có thể nhận tham số null trong khi một tham chiếu thì không. Bạn chỉ có thể sử dụng con trỏ nếu bạn muốn chuyển “không có đối tượng”.
Việc chuyển một cách rõ ràng bằng con trỏ cho phép chúng tôi xem đối tượng được chuyển theo tham chiếu hay giá trị tại trang web cuộc gọi.
Đây là ví dụ đơn giản về chuyển qua con trỏ và chuyển qua tham chiếu -
Di chuyển bằng con trỏ
Ví dụ
#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"; }
Đầu ra
Before Swap m = 7 n = 6 After Swap by pass by pointer m = 6 n = 7
Chuyển bằng tham chiếu
Ví dụ
#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"; }
Đầu ra
Before Swap m = 7 n = 6 After Swap by pass by reference m = 6 n = 7