Tham Chiếu và Tham Trị là cách truyền tham số mà chúng ta thường gặp trong các bài toán hàm hoặc mảng trong C/C++, nó cũng là một vấn đề khá đau đầu nếu như chúng ta không hiểu. Nhưng bạn không phải lo, đọc kỹ bài viết này, tôi tin chắc rằng bạn sẽ hiểu nó ngay đấy.
- Giống nhau: đều truyền giá trị vào hàm khi hàm được gọi.
- Khác nhau:
- Truyền tham trị [Pass by value]: truyền giá trị của biến vào hàm.
- Truyền tham chiếu [Pass by reference]: truyền địa chỉ của biến vào hàm.
Truyền tham trị – Pass by value
Ý tưởng
Khi truyền biến vào hàm theo cách truyền tham trị, giá trị của biến sẽ được sao chép thành một bản sao trong bộ nhớ, việc thực hiện các phép tính toán trong hàm đối với biến này đều thực hiện trên bản sao đã tạo ra, nghĩa là nó sẽ làm việc trên bản sao.
[Giống như bạn photo giấy khai sinh rồi đem ra xã đóng dấu lên bản sao để công chứng đó, chúng ta làm việc đóng dấu lên bản sao photo chứ không tác động trực tiếp trên bản gốc].
Kết quả
Giá trị của biến được truyền hàm vào không thay đổi.
[Bản gốc bạn đem đi photo ra bản sao như nào thì nó y chang như vậy]
Cách sử dụng
Không cần thêm ký hiệu gì đặc biệt trước biến được truyền vào hàm cả.