DÁNH SÁCH BÀI VIẾT Lập trình là gì? Một số khái niệm trong lập trình Cài đặt IDE Dev C++ – Môi trường lập trình C/C++ Làm quen với ngôn ngữ C – Chương trình Hello World Những cú pháp cơ bản Các kiểu dữ liệu Biến và Toán tử Vòng lặp for, while và do…while Câu lệnh điều kiện if else Cấu Trúc Rẽ Nhánh Switch … Case Từ khóa break và continue Mảng Hàm Tham biến và Tham trị Chuỗi ký tự Một số hàm xử lý chuỗi Con trỏ Đọc ghi file Struct – Dữ liệu kiểu cấc trúc
Nếu bạn đang học lập trình thì cũng không còn xa lạ khi nhắc tới thăm chiếu và thăm trị, nhưng bạn đã hiểu và biết cách dùng nó chưa? Vậy chúng ta cùng nhau tìm hiểu trong bài viết này nhé.
Thăm biến và Tham trị là gì?
Truyền tham biến (hay còn gọi là thăm chiếu): là truyền địa chỉ ô nhớ của biến, do đó khi thay đổi giá trị của biến bên trong phương thức thì giá trị của biến cũng bị thay đổi bên ngoài phương thức. Tức là biến được truyền vào hàm với tham chiếu thì trong hàm biến đó bị thay đổi như thế nào thì được lưu giữ giá trị khi thoát khỏi hàm đó.
Truyền tham trị là truyền giá trị của biến (không phải là địa chỉ ô nhớ), khi đó phương thức sẽ tự động tạo ra một địa chỉ ô nhớ mới để lưu trữ giá trị này, do đó nó chỉ được thay đổi trong phương thức hiện hành và giá trị của biến không bị thay đổi bên ngoài phương thức hiện hành.
Ví dụ truyền tham trị trong C/C++
Để sử dụng tham trị thì chỉ đơn giản là ta truyền một biến như bình thường vào hàm.
Ta có đoạn code C/C++ như sau:
#include <stdio.h>
void change(int x){ //Truyền tham trị (không có dấu & trước biến)
x = x + 10; //Cộng thêm 10 vào x
}
int main()
{
int x = 100;
printf("Truoc khi goi phuong thuc: %d", x);
change(x); //Gọi hàm thay đổi giá trị x
printf("\nSau khi goi phuong thuc: %d", x);
}
Kết quả:
Truoc khi goi phuong thuc x = 100
Sau khi goi phuong thuc x = 100
Trong ví dụ trên, giá trị của biến x không bị thay đổi bên ngoài phương thức change(), mặc dù bên trong phương thức change() chúng ta đã cố gắng thay đổi bằng cách cộng x thêm 10.
Ví dụ truyền tham chiếu trong C/C++
Để sử dụng tham chiếu, thì ta sẽ thêm dấu & ngay trước biến. Dấu & tức là ta đang truyền vào địa chỉ của ô nhớ của biến đó.
Như vậy, ta sẽ chỉ thay đổi lại một chút chương trình trên như sau:
#include <stdio.h>
void change(int &x){
x = x + 10;
}
int main()
{
int x = 100;
printf("Truoc khi goi phuong thuc: %d", x);
change(x);
printf("\nSau khi goi phuong thuc: %d", x);
}
Kết quả:
Truoc khi goi phuong thuc x = 100
Sau khi goi phuong thuc x = 110
Trong ví dụ này, Giá trị của biến x đã bị thay đổi sau khi thoát khỏi hàm change().
Qua 2 ví dụ đơn giản này hy vọng có thể giúp bạn hiểu được thế nào là thăm biến, thế nào là thăm trị và biết cách áp dụng nó vào trong những bài toán.
[XEM THÊM TẤT CẢ BÀI VIẾT CHỦ ĐỀ C/C++ TẠI ĐÂY]