Mảng làm đối số của hàm
Thuộc phần Nền tảng cơ bản trong hành trình C của Coddy. Bài học 58 trên 63.
Trong C, bạn có thể truyền mảng làm đối số cho hàm. Khi truyền một mảng cho hàm, thứ thực sự được truyền là địa chỉ bộ nhớ của phần tử đầu tiên.
Khai báo một mảng và một hàm nhận mảng đó làm đối số:
void displayArray(int arr[], int size) {
for(int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}Tạo một mảng và gọi hàm:
int numbers[5] = {10, 20, 30, 40, 50};
displayArray(numbers, 5);Khi bạn truyền một mảng vào hàm (function), những thay đổi bạn thực hiện với mảng bên trong hàm sẽ ảnh hưởng đến mảng ban đầu:
void doubleValues(int arr[], int size) {
for(int i = 0; i < size; i++) {
arr[i] = arr[i] * 2;
}
}
// Gọi hàm (function)
doubleValues(numbers, 5);
// Bây giờ numbers chứa: {20, 40, 60, 80, 100}Thử thách
DễTạo một hàm có tên sumArray nhận hai đối số:
- Một mảng số nguyên (arr).
- Một số nguyên (size) biểu thị kích thước của mảng.
Hàm này cần tính và trả về tổng của tất cả phần tử trong mảng.
Sau đó, trong hàm main:
- Đọc một số nguyên n (kích thước của mảng).
- Đọc n số nguyên và lưu chúng vào một mảng.
- Gọi hàm sumArray với mảng đó.
- In tổng theo định dạng: "Sum: X" (trong đó X là tổng).
Tự làm thử
#include <stdio.h>
// Viết hàm (function) sumArray tại đây
int main() {
int n;
scanf("%d", &n);
int arr[n];
for(int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// Gọi hàm sumArray và in ra kết quả
return 0;
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Nền tảng cơ bản
2Biến
Kiểu dữ liệuSố nguyênSố thực - DoubleKý tựGiá trị BooleanHằng sốCơ bản về printfQuy tắc đặt tên biếnChuyển đổi kiểu phần 1Chuyển đổi kiểu phần 2Thử thách ôn tậpTự luyện tập: Trình biên dịch C online