Mảng (array) trong C (phần 3)

Trong bài học C++ về mảng (array) trong C++ (phần 1 và 2) Taimienphi.vn đã giới thiệu cho bạn về khởi tạo mảng và khai báo mảng trong C++ là gì. Trong bài C++ hôm nay, Taimienphi.vn sẽ giới thiệu tiếp cho bạn về con trỏ tới mảng trong C++.

Để tìm hiểu chi tiết về truyền toàn bộ mảng trong hàm và vòng lặp For - each trong C++ là gì, bạn đọc cùng tham khảo tiếp bài viết dưới đây của Taimienphi.vn.

mang array trong c phan 3

Mục Lục bài viết:
1. Truyền toàn bộ mảng trong hàm
2. Vòng lặp For, each

 

1. Truyền toàn bộ mảng trong hàm

Trong C++, chúng ta có thể truyền một phần tử của mảng hoặc toàn bộ mảng để làm đối số cho hàm.

- Trước hết là truyền một phần tử của mảng cho một hàm:

#include
void display(int a)
{
std::cout < a=""><>
}
int main(){
int n[ ] = { 20, 30, 23, 4, 5, 2, 41, 8 };
display(n[2]);
trả về 0;
}

Kết quả đầu ra có dạng: 23.

- Truyền toàn bộ mảng cho hàm:

Ngoài ra chúng ta cũng có thể truyền toàn bộ mảng cho hàm bằng cách trueyefn tên mảng làm đối số. Tức là chúng ta sẽ truyền địa chỉ của mảng, là địa chỉ của phần tử đầu tiên của mảng. Bằng cách trỏ phần tử đầu tiên, chúng ta có thể lấy toàn bộ mảng.

Để dễ hình dung, bạn đọc cùng tham khảo ví dụ dưới đây:

#include
float trùng bình (float a[])
{
int i;
float avg, sum=0;
for(i=0;i<>
{
sum+= a[i];
}
avg = sum/8;
trả về avg;
}
int main(){
float b, n[ ] = { 20.6, 30.8, 5.1, 67.2, 23, 2.9, 4, 8 };
b = trung bình(n);
std:: cout < "trung="" bình="" các="" số=" << b << std::endl;
trả về 0;
}

Kết quả trả về có dạng:

Trung bình các số = 20.2

Trung bình(float a[]): là hàm lấy mảng float. Phần còn lại của phần thân hàm được thực thi.

b = trung bình(n): n được truyền. Như đã đề cập trước đó, n là con trỏ tới phần tử đầu tiên hoặc con trỏ tới mảng n []. Vì vậy, chúng ta truyền qua con trỏ.

Trong ví dụ trên chúng ta tính trung bình các giá trị của các phần tử trong một mảng, trong đó kích thước của mảng đã biết, là 8.

Giả sử chúng ta lấy kích thước của mảng từ người dùng. Trong trường hợp đó, kích thước của mảng không cố định. Ở đây, chúng ta cần truyền kích thước của mảng làm đối số thứ hai cho hàm.

#include
float trung bình(float a[],int size)
{
int i;
float avg, sum=0;
for(i=0;i
{
sum+= a[i];
}
avg = sum/size;
trả về avg;
}
int main(){
sử dụng namespace std;
int size,j;
cout << " nhập="" kích="" thước="" của="" mảng"=""><>
cin >> size;
float b, n[size];
for(j=0; j
{
cout < "giá="" trị="" của="" n["="">< j="">< "]="" :="" "=""><>
cin >> n[j];
}
b = trung bình (n, size);
cout < "trung="" bình="" các="" số=" << b << endl;
trả về 0;
}
Đầu ra:
Nhập kích thước của mảng
4
Giá trị của n[0] :
47
Giá trị của n[1] :
74
Giá trị của n[2] :
45
Giá trị của n[3] :
56
Trung bình các số = 55.5

Đoạn mã trên tương tự như các đoạn mã trong các ví dụ trước, chỉ khác chúng ta đã truyền kích thước của mảng theo kiểu tường mình - float trung bình (float a [], int size).

Hoặc ngoài ra chúng ta cũng có thể truyền mảng cho một hàm bằng cách sử dụng con trỏ. Cùng tham khảo ví dụ dưới đây:

#include
Sử dụng namespace std;
void display(int *p)
{
int i;
for(i=0;i<8;++i)
{
cout << " n["="">< i="">< "]=" << *p << endl;
p++;
}
}
int main(){
int size,j;
int n[ ] = { 1, 2, 3, 4, 5, 6, 7, 8 };
display(n);
trả về 0;
}
Đầu ra có dạng:
n[0] = 1
n[1] = 2
n[2] = 3
n[3] = 4
n[4] = 5
n[5] = 6
n[6] = 7
n[7] = 8

Trong ví dụ trên, địa chỉ của mảng, tức là địa chỉ của n[0] được truyền cho các tham số chính của hàm.

- void display(int *p): tức là hàm display đang lấy con trỏ của một số nguyên và không trả về bất kỳ giá trị nào.

Bây giờ chúng ta truyền con trỏ cho một số nguyên, tức là con trỏ của mảng n[], trong đó n là theo yêu cầu của hàm display.

Vì p là địa chỉ của mảng n[] trong hàm display, tức là địa chỉ của phần tử đầu tiên của mảng (n[0]), vì vậy *p tương ứng cho giá trị của n[0]. Trong vòng lặp for trong hàm, p++ tăng giá trị của p lên 1. Vì vậy, khi i = 0, giá trị của *p được in. Sau đó p++ tăng *p lên *(p + 1), vì vậy trong vòng lặp thứ hai, giá trị của *(p + 1) tức là n[1] được in. Vòng lặp này tiếp tục cho đến khi i = 7 khi giá trị của *(p + 7) tức là n[7] được in.

2. Vòng lặp For,  each

Dạng vòng lặp for mới giúp việc lặp các mảng dễ dàng hơn, được gọi là vòng lặp for - each. Vòng lặp này được sử dụng để lặp qua một mảng.

Dưới đây là ví dụ về vòng lặp for - each:

#include
int main()
{
Sử dụng namespace std;
int ar[] = { 1,2,3,4,5,6,7,8,9,10 };
for (int m : ar)
{
cout < m=""><>
}
Trả về 0;
}
Kết quả trả về:
1
2
3
4
5
6
7
8
9
10

Ở đây biến m sẽ truy cập mọi phần tử của mảng ar và lấy giá trị của nó. Vì vậy, trong lần lặp đầu tiên, m là phần tử đầu tiên của mảng ar, tức là 1. Trong lần lặp thứ hai, m là phần tử thứ 2, tức là 2, ... . Chỉ cần tập trung vào cú pháp của vòng lặp này, phần còn lại rất dễ dàng.

https://thuthuat.taimienphi.vn/mang-array-trong-c-phan-3-45807n.aspx
Như vậy trong bài viết mảng (array) trong C++ (phần 3) trên đây Taimienphi.vn vừa giới thiệu cho bạn về vòng lặp For - each và truyền toàn bộ mảng trong hàm trong C++. Trong bài viết mảng (array) trong C++ (phần 4) tiếp theo Taimienphi.vn sẽ giới thiệu tiếp cho bạn về mảng 2D trong C++ là gì, các bạn hãy đón đọc bài viết về mảng trong C phần 4 để có thêm những kiến thức về lập trình C.

Tác giả: Nguyễn Ngọc Thuỷ     (4.0★- 3 đánh giá)  ĐG của bạn?

  

Bài viết liên quan

Con trỏ (pointer) trong C
Mảng (array) trong C (phần 2)
Date và Time trong C
Phạm vi biến trong C
Lệnh điều kiện trong C
Từ khoá liên quan:

Mảng (array) trong C++

, học C++, C++,

SOFT LIÊN QUAN
  • Dev C++

    Trình biên dịch C, C++ đa tính năng

    Dev C++ là môi trường phát triển tích hợp (IDE) dành cho lập trình viên C và C++, hỗ trợ đầy đủ tính năng soạn thảo, biên dịch và gỡ lỗi với công cụ MinGW. Bloodshed Dev C++ phù hợp cho cả người mới lẫn lập trình viên ch ...

Tin Mới

  • 1 tỷ có mấy số 0

    Nếu đang cần tính toán, quy đổi các chữ số hàng tỷ ra các con số hàng trăm, vạn, triệu,..., nhưng không nhớ chính xác 1 tỷ có mấy số 0 hay 1 triệu có mấy số 0 thì bài viết này sẽ rất hữu ích với bạn. Vận dụng cách ghi nhớ các số, chữ số hàng tỷ, bạn đọc sẽ nhanh chóng tính toán và quy đổi sang các giá trị tương ứng

  • Cách đăng ký tài khoản Turnitin, kiểm tra đạo văn

    Turnitin là phần mềm check, kiểm tra đạo hiệu quả, được nhiều giảng viên, người hướng dẫn luận văn và các em học sinh tại Việt Nam sử dụng. Bằng cách đăng ký tài khoản Turnitin và gửi lên bài làm cá nhân, bạn có thể dễ dàng kiểm tra, phát hiện các lỗi trích dẫn, sao chép không phù hợp và sửa đổi. Chi tiết cách đăng ký tài khoản, công cụ kiểm tra đạo văn đã được tổng hợp dưới đây, mời bạn đọc tham khảo.

  • Đăng nhập Trạng Nguyên Tiếng Việt trên máy tính, điện thoại

    Tiến hành đăng nhập Trạng Nguyên Tiếng Việt là cách duy nhất bạn có thể tham gia cuộc thi do Trạng Nguyên Tiếng Việt tổ chức dễ dàng. Cách đăng nhập sẽ được hướng dẫn trong bài viết sau, các bạn cùng tham khảo.

  • Cách luyện gõ 10 ngón tay trực tuyến

    Luyện gõ 10 ngón tay trực tuyến là phương pháp tập gõ đơn giản nhất, bạn không cần tải và cài đặt phần mềm lằng nhằng mà vẫn cải thiện được tốc độ gõ bàn phím máy tính, laptop. Mỗi ngày bạn chỉ cần bỏ ra chút thời gian luyện tập sẽ thấy ngay hiệu quả của việc luyện tập.