Kết quả chương trình sau là gì:
#include
void hoanvi(int px, int py) {
int pfl;
pfl = px;
px = py;
py = pfl;
}
void main() {
int a = 15, b = 21;
hoanvi(a, b);
printf("%d %d", a, b);
}
Trả lời:
Đáp án đúng: B
Hàm `hoanvi` được gọi với hai biến `a` và `b` làm tham số. Tuy nhiên, trong C, các tham số được truyền vào hàm theo giá trị (pass by value). Điều này có nghĩa là hàm `hoanvi` nhận bản sao của giá trị của `a` và `b`, chứ không phải bản thân các biến `a` và `b`. Do đó, mọi thay đổi được thực hiện đối với `px` và `py` trong hàm `hoanvi` sẽ không ảnh hưởng đến `a` và `b` trong hàm `main`. Vì vậy, giá trị của `a` và `b` vẫn giữ nguyên là 15 và 21 sau khi gọi hàm `hoanvi`.
Chương trình sẽ in ra giá trị của `a` và `b` sau khi gọi hàm `hoanvi`. Vì `a` và `b` không thay đổi, kết quả sẽ là "15 21".