Hàm và mảng trong C++

Truyền mảng vào một hàm trong lập trình C++

Trong bài này, bạn sẽ được học cách truyền mảng vào hàm trong C++. Bạn sẽ được học cách truyền cả mảng một chiều và mảng nhiều chiều.

Mảng có thể được truyền vào hàm như một đối số. Xem ví dụ truyền mảng một chiều vào hàm sau:

Ví dụ 1: Truyền mảng một chiều vào hàm

Chương trình C++ hiển thị điểm của 5 học sinh bằng cách truyền mảng một chiều vào hàm.

#include <iostream>
using namespace std;

void display(int marks[5]);

int main()
{
    int marks[5] = {88, 76, 90, 61, 69};
    display(marks);
    return 0;
}

void display(int m[5])
{
    cout << "Displaying marks: "<< endl;

    for (int i = 0; i < 5; ++i)
    {
        cout << "Student "<< i + 1 <<": "<< m[i] << endl;
    }
}

Đầu ra

Displaying marks:

Student 1: 88

Student 2: 76

Student 3: 90

Student 4: 61

Student 5: 69

Khi một mảng được truyền như một đối số vào hàm, chỉ có tên của mảng được sử dụng như là một đối số.

display(marks);

Ngoài ra, cũng lưu ý sự khác biệt khi truyền mảng như một đối số chứ không phải một biến.

void display(int m[5]);

Đối số marks trong đoạn mã trên đại diện cho vùng nhớ của phần tử đầu tiên của mảng marks[5].

Và đối số hình thức int m[5] trong khai báo hàm được chuyển thành int* m;. Con trỏ này trỏ tới cùng địa chỉ được trỏ bởi mảng marks.

Đó là lý do vì sao mà mặc dù trong hàm do người dùng định nghĩa sử dụng một tên mảng khác là m[5], mảng ban đầu marks vẫn được xử lý.

C++ xử lý việc truyền một mảng vào một hàm theo cách này nhằm giúp tiết kiệm bộ nhớ và thời gian.

Truyền mảng nhiều chiều vào hàm

Mảng nhiều chiều có thể được truyền theo cách tương tự như mảng một chiều. Xem ví dụ sau khi truyền mảng hai chiều vào một hàm:

Ví dụ 2: Truyền mảng hai chiều vào một hàm

Chương trình C++ giúp hiển thị các phần tử của mảng hai chiều bằng cách truyền nó vào một hàm.

#include <iostream>
using namespace std;

void display(int n[3][2]);

int main()
{
    int num[3][2] = {
        {3, 4},
        {9, 5},
        {7, 1}

    };
    display(num);

    return 0;
}

void display(int n[3][2])
{

    cout << "Displaying Values: " << endl;
    for(int i = 0;  i < 3; ++i)
    {
        for(int j = 0; j < 2; ++j)
        {
            cout << n[i][j] << " ";
        }
    }
}

Đầu ra

Displaying Values:

3 4 9 5 7 1

Trong chương trình trên, mảng nhiều chiều num được truyền vào hàm display().

Trong hàm display, mảng n (num) được duyệt sử dụng vòng lặp for lồng nhau.

Chương trình sử dụng 2 vòng lặp for để duyệt qua các phần tử trong một mảng hai chiều. Nếu đó là một mảng 3 chiều, bạn nên dùng 3 vòng lặp for.

Cuối cùng, toàn bộ các phần tử được in ra màn hình.

Chú ý: Mảng nhiều chiều với số chiều lớn hơn 2 có thể được truyền vào theo cách tương tự như với mảng hai chiều.

** Nếu bạn muốn viết các nội dung đặt biệt thì hãy làm theo hướng dẫn sau

Xem thêm 10 bình luận
Viết blog mới của bạn
Báo lỗi trang
Đang tải