Con trỏ - Bài 3: Con trỏ là tham số của hàm (Phần 2)
Một ví dụ thường thấy là hàm HoanVi() nhằm hoán chuyển nội dung của 2 biến a, b khi gửi địa chỉ của chúng đến khi gọi hàm với lời gọi là HoanVi(&a, &b).
- Sau khi gọi hàm, ta muốn a nhận giá trị của b, còn b nhận giá trị cũ của a, trong đó các tham số x và y là địa chỉ của các biến cần hoán chuyển nội dung, còn *x và *y chính là các biến mà địa chỉ của chúng lưu tương ứng trong x và y.
- Đối với lời gọi hàm thì địa chỉ của biến a được chuyến vào x (tức là lúc đó x = &a), còn địa chỉ của biến b được chuyển vào y(tương đương y = &b).
-> Do vậy *x nghĩa là *(&a) chính là a, còn *y chính là *(&b) hay là b
void HoanVi(int* x, int* y) // int* x = &a; int* y = &b;
{
int temp = *x;
*x = *y;
*y = temp;
}
void main()
{
int a = 1;
int b = 2;
HoanVi(&a, &b);
cout << "a = " << a <<" ,b = " << b;
}
- Sau khi gọi hàm, ta muốn a nhận giá trị của b, còn b nhận giá trị cũ của a, trong đó các tham số x và y là địa chỉ của các biến cần hoán chuyển nội dung, còn *x và *y chính là các biến mà địa chỉ của chúng lưu tương ứng trong x và y.
- Đối với lời gọi hàm thì địa chỉ của biến a được chuyến vào x (tức là lúc đó x = &a), còn địa chỉ của biến b được chuyển vào y(tương đương y = &b).
-> Do vậy *x nghĩa là *(&a) chính là a, còn *y chính là *(&b) hay là b
void HoanVi(int* x, int* y) // int* x = &a; int* y = &b; { int temp = *x; *x = *y; *y = temp; } void main() { int a = 1; int b = 2; HoanVi(&a, &b); cout << "a = " << a <<" ,b = " << b; }
Con trỏ - Bài 3: Con trỏ là tham số của hàm (Phần 2)
Reviewed by myblog
on
23:09:00
Rating:
Không có nhận xét nào: