Trong hướng dẫn này, bạn sẽ học cách truyền mảng (cả mảng một chiều và nhiều chiều) cho một hàm trong lập trình C với sự trợ giúp của các ví dụ.
Trong lập trình C, bạn có thể truyền toàn bộ mảng cho các hàm. Trước khi tìm hiểu điều đó, hãy xem cách bạn có thể chuyển các phần tử riêng lẻ của một mảng cho các hàm.
Chuyển các phần tử mảng riêng lẻ
Truyền các phần tử mảng cho một hàm tương tự như truyền các biến cho một hàm.
Ví dụ 1: Truyền một mảng
#include void display(int age1, int age2) ( printf("%d", age1); printf("%d", age2); ) int main() ( int ageArray() = (2, 8, 4, 12); // Passing second and third elements to display() display(ageArray(1), ageArray(2)); return 0; )
Đầu ra
8 4
Ví dụ 2: Truyền mảng cho các hàm
// Program to calculate the sum of array elements by passing to a function #include float calculateSum(float age()); int main() ( float result, age() = (23.4, 55, 22.6, 3, 40.5, 18); // age array is passed to calculateSum() result = calculateSum(age); printf("Result = %.2f", result); return 0; ) float calculateSum(float age()) ( float sum = 0.0; for (int i = 0; i < 6; ++i) ( sum += age(i); ) return sum; )
Đầu ra
Kết quả = 162,50
Để truyền toàn bộ mảng cho một hàm, chỉ tên của mảng được truyền dưới dạng đối số.
result = calculateSum(age);
Tuy nhiên, hãy lưu ý việc sử dụng ()
trong định nghĩa hàm.
float calculateSum(float age()) (… )
Điều này thông báo cho trình biên dịch rằng bạn đang truyền một mảng một chiều cho hàm.
Truyền mảng đa chiều cho một hàm
Để truyền mảng nhiều chiều cho một hàm, chỉ tên của mảng được truyền cho hàm (tương tự như mảng một chiều).
Ví dụ 3: Truyền mảng hai chiều
#include void displayNumbers(int num(2)(2)); int main() ( int num(2)(2); printf("Enter 4 numbers:"); for (int i = 0; i < 2; ++i) for (int j = 0; j < 2; ++j) scanf("%d", &num(i)(j)); // passing multi-dimensional array to a function displayNumbers(num); return 0; ) void displayNumbers(int num(2)(2)) ( printf("Displaying:"); for (int i = 0; i < 2; ++i) ( for (int j = 0; j < 2; ++j) ( printf("%d", num(i)(j)); ) ) )
Đầu ra
Nhập 4 số: 2 3 4 5 Hiển thị: 2 3 4 5
Lưu ý: Trong lập trình C, bạn có thể truyền mảng cho các hàm, tuy nhiên, bạn không thể trả về mảng từ các hàm.