C++ cung cấp một cấu trúc dữ liệu, mảng , lưu trữ một tập hợp tuần tự có kích thước cố định gồm các phần tử cùng loại. Một mảng được sử dụng để lưu trữ một tập hợp dữ liệu, nhưng sẽ hữu ích hơn nếu coi một mảng là một tập hợp các biến cùng loại.
Thay vì khai báo các biến riêng lẻ, chẳng hạn như số0, số1, … và số99, bạn khai báo một biến mảng chẳng hạn như số và sử dụng các số[0], số[1] và …, số[99] để biểu diễn các biến riêng lẻ. Một phần tử cụ thể trong một mảng được truy cập bởi một chỉ mục.
Tất cả các mảng bao gồm các vị trí bộ nhớ liền kề. Địa chỉ thấp nhất tương ứng với phần tử đầu tiên và địa chỉ cao nhất tương ứng với phần tử cuối cùng.
khai báo mảng
Để khai báo một mảng trong C++, lập trình viên chỉ định loại phần tử và số lượng phần tử mà một mảng yêu cầu như sau −
type arrayName [ arraySize ];
Đây được gọi là mảng một chiều. ArraySize phải là một hằng số nguyên lớn hơn 0 và loại có thể là bất kỳ loại dữ liệu C++ hợp lệ nào. Ví dụ, để khai báo một mảng 10 phần tử được gọi là số dư kiểu double, hãy sử dụng câu lệnh sau –
double balance[10];
Khởi tạo mảng
Bạn có thể khởi tạo từng phần tử mảng C++ hoặc từng phần tử một hoặc sử dụng một câu lệnh đơn lẻ như sau –
double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};
Số lượng giá trị nằm trong cặp dấu ngoặc vuông { } không được lớn hơn số phần tử mà chúng ta khai báo cho mảng nằm trong cặp dấu ngoặc vuông [ ]. Sau đây là một ví dụ để gán một phần tử của mảng –
Nếu bạn bỏ qua kích thước của mảng, thì một mảng vừa đủ lớn để chứa giá trị khởi tạo sẽ được tạo. Do đó, nếu bạn viết –
double balance[] = {1000.0, 2.0, 3.4, 17.0, 50.0};
Bạn sẽ tạo chính xác mảng giống như bạn đã làm trong ví dụ trước.
balance[4] = 50.0;
Câu lệnh trên gán phần tử thứ 5 trong mảng một giá trị là 50,0. Mảng có chỉ số thứ 4 sẽ là phần tử thứ 5 , tức là phần tử cuối cùng vì tất cả các mảng đều có 0 là chỉ số của phần tử đầu tiên của chúng, còn được gọi là chỉ số cơ sở. Sau đây là biểu diễn bằng hình ảnh của cùng một mảng mà chúng ta đã thảo luận ở trên –
Truy cập các phần tử mảng
Một phần tử được truy cập bằng cách lập chỉ mục tên mảng. Điều này được thực hiện bằng cách đặt chỉ mục của phần tử trong dấu ngoặc vuông sau tên của mảng. Ví dụ –
double salary = balance[9];
Câu lệnh trên sẽ lấy phần tử thứ 10 từ mảng và gán giá trị cho biến lương. Sau đây là một ví dụ, sẽ sử dụng tất cả ba khái niệm nêu trên. khai báo, gán và truy cập mảng −
#include <iostream> using namespace std; #include <iomanip> using std::setw; int main () { int n[ 10 ]; // n is an array of 10 integers // initialize elements of array n to 0 for ( int i = 0; i < 10; i++ ) { n[ i ] = i + 100; // set element at location i to i + 100 } cout << "Element" << setw( 13 ) << "Value" << endl; // output each array element's value for ( int j = 0; j < 10; j++ ) { cout << setw( 7 )<< j << setw( 13 ) << n[ j ] << endl; } return 0; }
Chương trình này sử dụng hàm setw() để định dạng đầu ra. Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau –
Element Value 0 100 1 101 2 102 3 103 4 104 5 105 6 106 7 107 8 108 9 109
Mảng trong C++
Mảng rất quan trọng đối với C++ và cần nhiều chi tiết hơn. Có một vài khái niệm quan trọng sau đây, cần phải rõ ràng đối với một lập trình viên C++ –
Sơ Không | Khái niệm & Mô tả |
---|---|
1 | mảng nhiều chiềuC++ hỗ trợ mảng nhiều chiều. Dạng đơn giản nhất của mảng nhiều chiều là mảng hai chiều. |
2 | Con trỏ tới một mảngBạn có thể tạo một con trỏ tới phần tử đầu tiên của một mảng bằng cách chỉ định tên mảng mà không cần bất kỳ chỉ mục nào. |
3 | Truyền mảng cho hàmBạn có thể truyền cho hàm một con trỏ tới một mảng bằng cách chỉ định tên của mảng mà không có chỉ mục. |
4 | Trả về mảng từ hàmC++ cho phép một hàm trả về một mảng. |