Bỏ qua đến nội dung
Bỏ qua điều hướng
MT MT.Net.VNDigital Platform
Đăng nhập
MT.NET.VN

MT.Net.VN

Tìm kiếm
MT LEARNING · LESSON

Call by reference – gọi hàm theo tham chiếu trong C

1 / 3 ❮ ❯ Call by reference – gọi hàm theo tham chiếu trong C Call by value – […]

Call by reference – gọi hàm theo tham chiếu trong C



Call by reference – gọi hàm theo tham chiếu trong C



Phương thức call by reference trong C của các đối số truyền cho một hàm sao chép địa chỉ của một đối số vào tham số chính thức. Bên trong hàm, địa chỉ được sử dụng để truy cập đối số thực tế được sử dụng trong cuộc gọi hàm. Nó có nghĩa là những thay đổi được thực hiện cho tham số ảnh hưởng đến đối số đã truyền.

Để chuyển một giá trị theo tham chiếu, các con trỏ đối số được chuyển tới các hàm giống như bất kỳ giá trị nào khác. Vì vậy, bạn cần phải khai báo các tham số hàm như các kiểu con trỏ như trong hàm swap(), hoán đổi các giá trị của hai biến số nguyên được trỏ tới, bởi các đối số của chúng. Ví dụ:

#include <stdio.h>   /* khai bao prototype */ void swap(int *x, int *y);   int main() {     // dinh nghia cac bien local     int a = 100;     int b = 200;       printf("Truoc swap, gia tri cua a : %dn", a );     printf("Truoc swap, gia tri cua b : %dn", b );       // goi ham swap() de hoan doi cac gia tri     swap(&a, &b);       printf("Sau swap, gia tri cua a : %dn", a );     printf("Sau swap, gia tri cua b : %dn", b );       return 0; }  /*   * ham hoan doi cac gia tri   */ void swap(int *x, int *y) {     int temp;      temp = *x;     *x = *y;     *y = temp;      return; } 

Kết quả:

Truoc swap, gia tri cua a : 100 Truoc swap, gia tri cua b : 200 Sau swap, gia tri cua a : 200 Sau swap, gia tri cua b : 100 

Kết quả cho thấy sự thay đổi bên trong hàm swap() cũng đã phản ánh bên ngoài hàm, không giống như call by value mà các thay đổi không phản ánh bên ngoài hàm.









Source link

Zalo Messenger Gọi điện Hỗ trợ0
Home Dịch vụ Khóa học CPanel