1. Truyền mảng vào hàm

Trong C++ không cho phép truyền toàn bộ mảng như là tham số của hàm, Tuy nhiên, Chúng ta có thể truyền một con trỏ tới một mảng bằng cách chỉ đưa tên của mảng vào hàm.

Cú pháp

Cú pháp của việc truyền mảng vào hàm trong C++ như sau:

Cách 1: Khai báo tham số hình thức của hàm như là con trỏ

Cú pháp
1
2
3
4
KieuDuLieu TenHam(KieuDuLieu *TenMang) {
   .
   .
}

Cách 2: Khai báo tham số hình thức của hàm như là mảng có kích cở cụ thể

Cú pháp
1
2
3
4
KieuDuLieu TenHam(KieuDuLieu TenMang[KichCo]) {
   .
   .
}

Cách 3: Khai báo tham số hình thức của hàm như là mảng không có kích cở

Cú pháp
1
2
3
4
KieuDuLieu TenHam(KieuDuLieu TenMang[]) {
   .
   .
}

Ví dụ

Chúng ta cùng xem một số ví dụ sau có sử dụng mảng như là tham số của hàm.

Ví dụ 1: Hiển thị tất các phần tử mảng ra màn hình

Ví dụ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream> 
using namespace std;
void HienThi(int arr[10])  { 
    cout << "Cac phan tu cua mang: " << endl; 
    for (int i = 0; i < 10; i++)  { 
        cout << "   arr[" << i << "] = " << arr[i] << endl;   
    
}  
int main()  { 
    int arr[10] = { 1, 2, 5, 3, 1, 4, 7, 8, 9, 9 };   
    HienThi(arr); 
    return 0;
}

Và kết quả sau khi thực thi đoạn code trên như sau:

Ví dụ 2: Hiển thị số nhỏ nhất và số lớn nhất trong mảng

Ví dụ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream> 
using namespace std; 
void TimPTNhoNhat(int arr[10])  { 
    int min = arr[0];   
    for (int i = 0; i < 10; i++)  {   
        if (min > arr[i])  {   
            min = arr[i];   
        }   
    }   
    cout << "Phan tu nho nhat la: " << min << endl;   
void TimPTLonNhat(int arr[10])  { 
    int max = arr[0];   
    for (int i = 0; i < 10; i++) {   
        if (max < arr[i])  {   
            max = arr[i];   
        }   
    }   
    cout << "Phan tu lon nhat la: " << max << endl;   
}
void HienThi(int arr[10])  { 
    cout << "arr = { "
    for (int i = 0; i < 9; i++)  { 
        cout << arr[i] << ", ";   
    }
    
    cout << arr[9] << " }";
}
int main() { 
   int arr[10] = { 6, 1, 5, 2, 6, 6, 3, 8, 9, 2 };   
   HienThi(arr);
   cout << endl;
   TimPTNhoNhat(arr);
   TimPTLonNhat(arr);
   return 0;
}

Và kết quả sau khi thực thi đoạn code trên như sau:

Ví dụ 3: Tính giá trị trung bình của các phần tử trong mảng

Ví dụ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
double TinhGiaTriTB(int arr[], int kichco) {
   int i, tong = 0;      
   double trungbinh;         
   for (i = 0; i < kichco; i++) {
      tong += arr[i];
   }
   trungbinh = double(tong) / kichco;
   return trungbinh;
}
int main () {
   int arr[10] = {1, 2, 3, 5, 7, 6, 1, 4, 9, 9};
   double trungbinh;
   trungbinh = TinhGiaTriTB(arr, 10) ;
   cout << "Gia tri trung binh la: " << trungbinh << endl;
    
   return 0;
}

Và kết quả sau khi thực thi đoạn code trên:

Ví dụ 4: In mảng 2 chiều ra màn hình

Ví dụ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
using namespace std;
void HienThi(int n[5][2]) {
    cout << "In mang 2 chieu dang mang 1 chieu: " << endl;
    for(int i = 0;  i < 5; ++i) {
        for(int j = 0; j < 2; ++j) {
            cout << n[i][j] << " ";
        }
    }
    cout << "\n\nIn mang 2 chieu dang ma tran: " << endl;
    for(int i = 0;  i < 5; ++i) {
        for(int j = 0; j < 2; ++j) {
            cout << n[i][j] << " ";
        }
        cout << endl;
    }
}
  
int main()
{
    int arr[5][2] = {
        {1, 8},
        {2, 1},
        {4, 4},
        {2, 4},
        {1, 6}
    };
    HienThi(arr);
    return 0;
}

Và kết quả sau khi thực thi đoạn code trên như sau:

2. Kết luận

Như vậy chúng ta đã cùng tìm hiểu xong bài học về truyền mảng vào hàm. Việc sử dụng mảng như là tham số của hàm thì cũng không khác gì với việc sử dụng các biến như các bài học khác phải không các bạn.

Ở bài học này chúng ta cần ghì nhớ 3 cách để truyền mảng vào hàm đó là tham số hình thức như là con trỏ, tham số hình thức như là mảng có kích cở cụ thể, tham số hình thức như là mảng không có kích cở. Các bạn sử dụng cách nào cũng được tùy vào bản thân của mọi người.

Nguồn:https://freetuts.net

 

ĐĂNG KÝ THÀNH VIÊN

NẾU NỘI DUNG HỮU ÍCH HÃY XEM QUẢNG CÁO ĐỂ ỦNG HỘ

NẾU NỘI DUNG HỮU ÍCH HÃY XEM QUẢNG CÁO ĐỂ ỦNG HỘ

Được quan tâm nhiều nhất

  • Apple Watch Series 4 Teardown

  • Phim Ngắn Đột Kích - Phiên bản 10 năm trước

  • Apple Watch Series 5 Teardown - Always on Display Explained

  • iPhone 11 Pro Max Teardown - Tiny Motherboard & BIG Battery!

Bạn thấy bài viết này thế nào?
Thể hiện yêu thương tác giả ở đây nhé!

Thích bài viết

thích

Chia sẻ ngay!

phuongle

Thành viên từ: 10/12/2019

Điểm uy tín: 5,987

SMod: 1,289 hướng dẫn đã chia sẻ

Team

Lập Trình Thành viên của Lập Trình

1 Thành viên

1,289 bài viết

Thêm bình luận

Bình luận bằng tài khoản Facebook

After viewing your support content - Please click advertisement for Support & Donate us team! Đóng