Call by value là gì?
Phrase
Programming
- ★
- ★
- ★
- ★
- ★
Gọi theo giá trị
Gọi theo giá trị (call by value) là truyền đối số (argument) đến một hàm (function), sao chép giá trị thực của đối số vào tham số hình thức (formal parameter) của hàm. Trong trường hợp này các thay đổi được thực hiện đối với tham số bên trong hàm không ảnh hưởng đến đối số.
Theo mặc định, ngôn ngữ C sử dụng gọi theo giá trị (call by value) để truyền các đối số. Nói chung nó có nghĩa là mã bên trong một hàm không thể thay đổi các đối số được sử dụng để gọi hàm. Hãy xem định nghĩa hàm swap () như sau.
/* function definition to swap the values */
void swap(int x, int y) {
int temp;
temp = x; /* save the value of x */
x = y; /* put y into x */
y = temp; /* put temp into y */
return;
}
Bây giờ chúng ta hãy gọi hàm swap () bằng cách truyền các giá trị thực như trong ví dụ sau
#include
/* function declaration */
void swap(int x, int y);
int main () {
/* local variable definition */
int a = 100;
int b = 200;
printf("Before swap, value of a : %d\n", a );
printf("Before swap, value of b : %d\n", b );
/* calling a function to swap the values */
swap(a, b);
printf("After swap, value of a : %d\n", a );
printf("After swap, value of b : %d\n", b );
return 0;
}
void swap(int x, int y) {
int temp;
temp = x; /* save the value of x */
x = y; /* put y into x */
y = temp; /* put temp into y */
return;
}
Output
Before swap, value of a : 100 Before swap, value of b : 200 After swap, value of a : 100 After swap, value of b : 200
Nó cho thấy rằng không có thay đổi nào trong các giá trị, mặc dù chúng đã được thay đổi bên trong hàm.
Learning English Everyday