Tham chiếu trong lập trình là gì
Trong bài viết này chúng ta sẽ cùng tìm hiểu về 3 cách truyền tham số cho hàm trong lập trình C/C++, với những nội dung sau:
Hàm trong C/C++ hoạt động theo nguyên tắc:
1. Tham số truyền bằng Tham trị (dùng trong cả C và C++) 1. Tham số truyền bằng Tham trị (dùng trong cả C và C++)Khi tham số của hàm được truyền bằng tham trị tức là truyền giá trị cho hàm, khi đi vào hàm sẽ tạo ra 1 vùng nhớ mới và mọi thao tác tính toán chỉ thao tác trên vùng nhớ mới đó, còn vùng nhớ cũ vẫn không thay đổi. Cho nên sau khi thực hiện xong, ra khỏi hàm thì giá trị của biến được truyền vào làm tham số sẽ không thay đổi, do không có ảnh hưởng trực tiếp đến vùng nhớ cũ. => Tham trị sẽ không làm thay đổi giá trị sau khi kết thúc lời gọi hàm. Do đó, tham trị được sử dụng khi không có nhu cầu thay đổi giá trị của tham số truyền vào. #include Kết quả chương trình Từ kết quả chạy chương trình các bạn có thể thấy, địa chỉ của biến a trong hàm XuLy(012FF64C) và trong hàm main(012FF720) là khác nhau nên việc tính toán bên trong hàm XuLy sẽ không làm ảnh hưởng đến giá trị a ở hàm main. 2. Tham số truyền bằng Tham chiếu (CHỈ DÙNG trong C++) 2. Tham số truyền bằng Tham chiếu (CHỈ DÙNG trong C++)Khi tham số của hàm được truyền bằng tham chiếu tức là truyền địa chỉ cho hàm, do đó khi đi vào hàm mọi thao tác tính toán sẽ được thực hiện trên vùng nhớ cũ, cho nên sau khi ra khỏi hàm giá trị đã bị thay đổi. => Tham chiếu sẽ làm thay đổi giá trị sau khi kết thúc lời gọi hàm. Do đó, tham chiếu được sử dụng khi có nhu cầu thay đổi giá trị của tham số truyền vào. #include Kết quả chương trình Từ kết quả chạy chương trình các bạn có thể thấy, địa chỉ của biến a trong hàm XuLy và hàm main là giống nhau(00AFFA20) nên việc tính toán bên trong hàm XuLy thì sẽ ảnh hưởng trực tiếp và làm thay đổi giá trị của biến a ở hàm main (cả 2 đều bằng 15). 3. Tham số truyền bằng Con trỏ (dùng trong cả C và C++) 3. Tham số truyền bằng Con trỏ (dùng trong cả C và C++)
#include Kết quả chương trình Một số lưu ý ở phần này: #include Địa chỉ của con trỏ Trước và Sau thực hiện hàm là Giống nhau: c70fd8 Vậy con trỏ ko thay đổi thì cái gì thay đổi được? ・ Ví dụ 1: #include ・ Ví dụ 2: #include Giá trị của biến a được thay đổi Tránh thao tác sai như sau: #include Vì truyền tham chiếu hay truyền con trỏ cho hàm đều làm thay đổi giá trị của biến tham số sau khi ra khỏi hàm. Do đó chúng ta có thể ứng dụng khi muốn lấy nhiều kết quả trả về từ 1 hàm. Ví dụ: #include Kết quả chương trình Cảm ơn bạn đã theo dõi. Đừng ngần ngại hãy cùng thảo luận với chúng tôi!4.4 7 votes Đánh giá bài viết |