STARTING
CONTROL STATEMENT
FUNCTION
ARRAY & POINTER
OOP
STL
ITERATORS
OTHER FEATURES
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Cách truyền mảng vào hàm trong C++

Các bạn thân mến! Ở các bài trước chúng ta đã tìm hiểu cách gọi hàm, các tham số của hàm là những biến có kiểu dữ liệu đơn giản như int, float, double... Trong bài học hôm nay chúng ta cùng tìm hiểu tham số của hàm là mảng (Array).

Vậy tham số của hàm là mảng thì có gì khác so với các tham số có các kiểu dữ liệu khác trong C++. Chúng ta sẽ cùng tìm hiểu trong nội dung sau đây nhé.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. Các bước truyền mảng vào hàm trong C++

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

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
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
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
KieuDuLieu TenHam(KieuDuLieu TenMang[]) {
   .
   .
}

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ụ
#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:

array function ex1 JPG

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

Ví dụ
#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:

array function ex2 JPG

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

Ví dụ
#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:

array function ex3 JPG

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

Ví dụ
#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:

array function ex4 JPG

2. Kết luận

Như vậy là mình đã hướng dẫn xong cách truyền mảng vào hàm trong C++. 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.

Vậy mình sẽ kết thúc bài học này ở đây nhé. Ở bài tiếp theo chúng ta sẽ cùng tìm hiểu về con trỏ. Các bạn nhớ theo dõi nhé.

Cùng chuyên mục:

Cách nhân hai số trong ngôn ngữ C

Cách nhân hai số trong ngôn ngữ C

Cách cộng hai số nguyên trong C

Cách cộng hai số nguyên trong C

Tổng hợp hơn 1000 bài tập C / C++ có lời giải

Tổng hợp hơn 1000 bài tập C / C++ có lời giải

Bài này sẽ tổng hợp hơn 1000 bài tập C / C++ có lời giải…

Các hàm trong thư viện ctime C / C++

Các hàm trong thư viện ctime C / C++

Các hàm trong thư viện cstdio C / C++

Các hàm trong thư viện cstdio C / C++

Các hàm trong thư viện cctype C / C++

Các hàm trong thư viện cctype C / C++

Các hàm trong thư viện cstring C / C++

Các hàm trong thư viện cstring C / C++

Các hàm trong thư viện cstdlib C/C++

Các hàm trong thư viện cstdlib C/C++

Các hàm nhập xuất IO (iostream) trong C / C++

Các hàm nhập xuất IO (iostream) trong C / C++

Các hàm toán học (math) trong C / C++

Các hàm toán học (math) trong C / C++

Nếu bạn đang học C++ căn bản thì phải biết công dụng của những hàm…

Bài tập vòng lặp while và do while trong C++

Bài tập vòng lặp while và do while trong C++

Nếu một bài toán được giải bằng vòng lặp while thì bạn hoàn toàn có…

Bài tập vòng lặp for trong C++ có lời giải

Bài tập vòng lặp for trong C++ có lời giải

Vòng lặp for C++ rất quan trọng, nó được sử dụng rất nhiều khi xử…

Bài tập if else trong C++ (có đổi sang switch case)

Bài tập if else trong C++ (có đổi sang switch case)

Để thành thạo hai lệnh rẻ nhánh if else và switch case thì bạn phải…

Tìm hiểu cấu trúc mảng (array) trong C++

Tìm hiểu cấu trúc mảng (array) trong C++

Toán tử ba ngôi trong C++

Toán tử ba ngôi trong C++

Toán tử ba ngôi thực ra là cách rút gọn code của lệnh if else,…

Các toán tử trong C++

Các toán tử trong C++

Toán tử đóng vai trò rất quan trọng trong lập trình, nó giúp chúng ta…

Ngôn ngữ C++ là gì? Dùng làm gì trong công nghệ thông tin?

Ngôn ngữ C++ là gì? Dùng làm gì trong công nghệ thông tin?

C++ là một ngôn ngữ lập trình phổ biến và mạnh mẽ có kiểu dữ…

Đọc ghi file trong C

Đọc ghi file trong C

Đa số sinh viên Việt Nam học lập trình C là để luyện tư duy…

Kiểu Union trong C

Kiểu Union trong C

Union có cách khai báo giống như struct, nhưng kích thước của nó sẽ lấy…

Hàm đệ quy trong ngôn ngữ C

Hàm đệ quy trong ngôn ngữ C

Giải thuật đệ quy nói chung và trong ngôn ngữ C nói riêng thì hàm…

Top