Kết quả của chương trình sau là gì:
#include
int change(int a) {
a = 10;
return a;
}
void main() {
int a = 5;
change(a);
printf("%d", a);
}
Trả lời:
Đáp án đúng: A
Chương trình này minh họa cách tham số được truyền vào hàm trong C. Trong hàm `main`, biến `a` được khởi tạo với giá trị 5. Sau đó, hàm `change(a)` được gọi, *truyền bản sao* của giá trị `a` vào hàm `change`. Bên trong hàm `change`, biến `a` (là một biến cục bộ của hàm `change`) được gán giá trị 10. Tuy nhiên, sự thay đổi này chỉ ảnh hưởng đến bản sao của `a` bên trong hàm `change`, chứ không ảnh hưởng đến biến `a` trong hàm `main`. Do đó, khi `printf("%d", a)` được gọi trong hàm `main`, nó vẫn in ra giá trị ban đầu của `a`, là 5.