Thông số chức năng C
Tham số và đối số
Thông tin có thể được chuyển đến các hàm dưới dạng tham số. Các tham số đóng vai trò như các biến bên trong hàm.
Các tham số được chỉ định sau tên hàm, bên trong dấu ngoặc đơn. Bạn có thể thêm bao nhiêu tham số tùy thích, chỉ cần phân tách chúng bằng dấu phẩy:
Cú pháp
returnType functionName ( parameter1 , parameter2 , parameter3 ) {
// code to be executed
}
Hàm sau lấy một chuỗi ký tự có tên làm tham số. Khi hàm được gọi, chúng ta chuyển vào một tên được sử dụng bên trong hàm để in "Xin chào" và tên của từng người.
Ví dụ
void myFunction(char name[]) {
printf("Hello %s\n", name);
}
int main() {
myFunction("Liam");
myFunction("Jenny");
myFunction("Anja");
return 0;
}
// Hello Liam
// Hello Jenny
// Hello Anja
Hãy tự mình thử » Khi một tham số được truyền vào hàm, nó được gọi là một đối số . Vì vậy, từ ví dụ trên: name
là một tham số , trong khi Liam
, Jenny
và Anja
là các đối số .
Nhiều thông số
Bên trong hàm, bạn có thể thêm bao nhiêu tham số tùy thích:
Ví dụ
void myFunction(char name[], int age) {
printf("Hello %s.
You are %d years old.\n", name, age);
}
int main() {
myFunction("Liam", 3);
myFunction("Jenny", 14);
myFunction("Anja", 30);
return 0;
}
// Hello Liam.
You are 3 years old.
//
Hello Jenny. You are 14 years old.
// Hello Anja. You are 30 years old.
Hãy tự mình thử »Lưu ý rằng khi bạn làm việc với nhiều tham số, lệnh gọi hàm phải có cùng số lượng đối số như số lượng tham số và các đối số phải được truyền theo cùng một thứ tự.
Truyền mảng dưới dạng tham số hàm
Bạn cũng có thể truyền mảng cho một hàm:
Ví dụ
void myFunction(int myNumbers[5]) {
for (int i = 0; i < 5; i++) {
printf("%d\n", myNumbers[i]);
}
}
int main() {
int
myNumbers[5] = {10, 20, 30, 40, 50};
myFunction(myNumbers);
return 0;
}
Hãy tự mình thử »Ví dụ giải thích
Hàm ( myFunction
) lấy một mảng làm tham số của nó ( int myNumbers[5]
) và lặp qua các phần tử mảng bằng vòng lặp for
.
Khi hàm được gọi bên trong main()
, chúng ta chuyển mảng myNumbers
, mảng này xuất ra các phần tử mảng.
Lưu ý rằng khi gọi hàm, bạn chỉ cần sử dụng tên của mảng khi truyền nó làm đối số myFunction(myNumbers)
. Tuy nhiên, cần phải khai báo đầy đủ mảng trong tham số hàm ( int myNumbers[5]
).
Giá trị trả về
Từ khóa void
, được sử dụng trong các ví dụ trước, chỉ ra rằng hàm không được trả về một giá trị. Nếu muốn hàm trả về một giá trị, bạn có thể sử dụng kiểu dữ liệu (chẳng hạn như int
hoặc float
, v.v.) thay vì void
và sử dụng từ khóa return
bên trong hàm:
Ví dụ
int myFunction(int x) {
return 5 + x;
}
int main() {
printf("Result is: %d", myFunction(3));
return 0;
}
// Outputs
8 (5 + 3)
Hãy tự mình thử »Ví dụ này trả về tổng của hàm có hai tham số :
Ví dụ
int myFunction(int x, int y) {
return x + y;
}
int main()
{
printf("Result is: %d", myFunction(5, 3));
return 0;
}
// Outputs 8 (5 + 3)
Hãy tự mình thử »Bạn cũng có thể lưu trữ kết quả trong một biến:
Ví dụ
int myFunction(int x, int y) {
return x + y;
}
int main()
{
int result = myFunction(5, 3);
printf("Result is =
%d", result);
return 0;
}
// Outputs 8 (5 + 3)
Hãy tự mình thử »Ví dụ thực tế
Để minh họa một ví dụ thực tế về cách sử dụng hàm, hãy tạo một chương trình chuyển đổi giá trị từ độ F sang độ C:
Ví dụ
// Function to convert Fahrenheit to Celsius
float toCelsius(float
fahrenheit) {
return (5.0 / 9.0) * (fahrenheit - 32.0);
}
int main() {
// Set a fahrenheit value
float f_value =
98.8;
// Call the function with the fahrenheit value
float result = toCelsius(f_value);
// Print the fahrenheit value
printf("Fahrenheit: %.2f\n", f_value);
// Print the result
printf("Convert Fahrenheit to Celsius: %.2f\n", result);
return
0;
}
Hãy tự mình thử »