Menu
CoddyTech

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}
challenge icon

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:

  1. Đọc một số nguyên n (kích thước của mảng).
  2. Đọc n số nguyên và lưu chúng vào một mảng.
  3. Gọi hàm sumArray với mảng đó.
  4. 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;
}
quiz iconTự kiểm tra

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

Tự luyện tập: Trình biên dịch C online