Kỹ thuật lập trình truyền con trỏ cho hàm trong C++ – Chia Sẻ Kiến Thức Điện Máy Việt Nam
Các bạn đã tìm hiểu 2 cách truyền đối số là Truyền tham trị và truyền tham chiếu cho hàm trong C++. Bài này sẽ giới thiệu một cách truyền đối số nữa là truyền con trỏ cho hàm. Sau khi học xong bài này, các bạn cần hiểu được sự khác nhau giữa những cách truyền đối số cho hàm.
Mục Lục
1. Nhắc lại cách truyền tham trị và tham chiếu
Truyền tham trị (pass by value)
void passByValue(int x){
x++;
}
int a = 10;
passByValue(a);//lời gọi hàm truyền tham trị
Khi hàm passByValue(a); được gọi, thì biến x trong hàm sẽ được cấp phát một vùng nhớ trên bộ nhớ. Giá trị của biến a sẽ được gán cho biến x và lưu ở vùng nhớ của biến x. Lúc này, x == 10.
Khi thực hiện lệnh: x++; thì chỉ có biến x tăng lên 1 (x == 11). Sau khi hàm kết thúc, biến x cũng sẽ bị hủy và giá trị biến a không thay đổi.
Bạn đang đọc: Kỹ thuật lập trình truyền con trỏ cho hàm trong C++ – Chia Sẻ Kiến Thức Điện Máy Việt Nam
Truyền tham chiếu (pass by reference)
void passByValue(int &x){
x++;
}
int a = 10;
passByValue(a);//lời gọi hàm truyền tham chiếu
Khi hàm passByValue(a); được gọi, thì biến x trong hàm sẽ có cùng địa chỉ vùng nhớ với biến a. Tức là 2 biến có cùng 1 vùng nhớ.
Bạn đang đọc : Kỹ thuật lập trình truyền con trỏ cho hàm trong C + +
Khi thực hiện lệnh: x++; thì biến x tăng lên 1 (x == 11). Giá trị này được lưu ở vùng nhớ chung của biến x và biến a, dẫn đến giá trị truy xuất từ biến a cũng thay đổi theo. Sau khi hàm kết thúc, biến x cũng sẽ bị hủy và giá trị biến a bị thay đổi.
2. Truyền con trỏ cho hàm
Chương trình C++ minh họa truyền con trỏ cho hàm
#include
#include
using namespace std;
void passByValue(int *x){
cout<<"Dia chi cua con tro x:"<<&x<
Xem thêm: Sửa Máy Sấy Electrolux Đà Lạt Lâm Đồng
Kết quả
Dia chi cua con tro x:00F1FB28
Dia chi cua bien a:00F1FBFC
Gia tri cua bien a bi thay doi:11
Khi hàm passByValue(&a); được gọi, thì biến con trỏ x trong hàm sẽ được cấp phát một vùng nhớ để lưu địa chỉ của biến a.
Khi thực hiện lệnh: (*x)++; thì biến con trỏ x truy cập vào vùng nhớ của biến a. Rồi lấy giá trị trong vùng nhớ của biến a tăng lên 1 và lưu lại trong vùng nhớ đó. Lúc này, giá trị truy xuất được từ biến a sẽ tăng lên 1 (a==11).
Sau khi hàm kết thúc, biến con trỏ x cũng sẽ bị hủy và giá trị biến a bị thay đổi.
Nhận xét: Việc sử dụng truyền con trỏ cho hàm sẽ tốn bộ nhớ (bộ nhớ lưu con trỏ) hơn truyền tham chiếu (truyền tham chiếu thì các biến sử dụng chung vùng nhớ). Nhưng không nên lạm dụng cách truyền nào mà nên sử dụng phù hợp cho từng yêu cầu cụ thể của chương trình.
Xem thêm: Máy lọc nước Karofi và những ưu điểm không thể chê
Xem thêm: Bompani BIDI60FSS manual
Xem thêm : Hướng dẫn chọn mua nồi cơm điện
5/5 – ( 1 bầu chọn )
Source: https://dvn.com.vn
Category : Bompani