DÁNH SÁCH BÀI VIẾT Lập trình là gì? Một số khái niệm trong lập trình Cài đặt IDE Dev C++ – Môi trường lập trình C/C++ Làm quen với ngôn ngữ C – Chương trình Hello World Những cú pháp cơ bản Các kiểu dữ liệu Biến và Toán tử Vòng lặp for, while và do…while Câu lệnh điều kiện if else Cấu Trúc Rẽ Nhánh Switch … Case Từ khóa break và continue Mảng Hàm Tham biến và Tham trị Chuỗi ký tự Một số hàm xử lý chuỗi Con trỏ Đọc ghi file Struct – Dữ liệu kiểu cấc trúc
Dữ liệu kiểu mảng là gì? tại sao dữ liệu mảng lại quan trọng? khi nào thì sử dụng dữ liệu kiểu Mảng?. Trong bài viết này chúng ta cùng đi tìm hiểu nhé.
Dữ liệu kiểu mảng là gì?
Giả sử cần lưu thông tin điểm số của 100 học sinh và việc khai báo 100 biến tên student1
, student2
, student3
, … student100
để làm việc này rất tốn thời gian. Hầu hết các ngôn ngữ lập trình đều cung cấp 1 cấu trúc dữ liệu để làm được việc này một cách hiệu quả, đó là sử dụng mảng.
1 mảng là một chuỗi hữu hạn các phần tử có cùng kiểu dữ liệu được lưu trữ tại các vùng nhớ liên tiếp nhau, mỗi phần tử được xác định bằng một chỉ số – số thứ tự của nó trong mảng.
Ví dụ: Mảng a
có 4 phần tử – 4 giá trị int
được lưu trữ liên tiếp nhau có thứ tự từ 0 – 3 như hình trên.
Lưu ý: chỉ số của mảng trong C/C++ bắt đầu từ 0.
Khai báo mảng trong C
Để khai báo một mảng trong ngôn ngữ C, chương trình xác định kiểu của biến và số lượng các phần tử được yêu cầu bởi biến đó như sau:
Kieu Ten_mang [ Kich_co_mang ];
Ví dụ, khai báo một mảng 10 phần tử gọi là soluong với kiểu int, khai báo như sau:
int soluong[5];
Khởi tạo mảng trong C
Bạn có thể khởi tạo giá trị mảng trong khai báo với một câu lệnh như dưới đây:
int soluong[5] = {34, 56, 23, 124, 67};
Số lượng các giá trị trong dấu ngoặc kép {} không được lớn hơn số lượng phần tử khai báo trong dấu ngoặc vuông [].
Cũng có thể gắn từng giá trị cho phần tử như sau:
int soluong[5];
soluong[0] = 5;
Trong ví dụ trên lúc này phần tử soluong[0] (tức là phần tử đầu tiên của mảng) sẽ có giá trị là 5.
Truy cập các phần tử mảng trong C
Một mảng được truy cập bởi cách đánh chỉ số trong tên của mảng. Dưới đây là một cách truy cập một giá trị của mảng:
int n = soluong[4];
Câu lệnh trên lấy phần tử thứ 5 (chỉ số của mảng bắt đầu từ 0) của mảng và gán giá trị này cho biến n.
Kích thước của mảng
Vì mảng là tập hợp các phần tử cùng kiểu dữ liệu nên kích thước của nó là tổng kích thước của tất cả các phần tử trong nó.
Ví dụ: mảng soluong
ở trên có 5 phần tử int
, mỗi phần tử int
chiếm 4 bytes trên bộ nhớ, nên kích thước của a
sẽ là 4 * 5 = 20 bytes. Nếu đây là mảng các phần tử short
– chiếm 2 bytes trên bộ nhớ thì kích thước mảng a
chỉ là 5 * 2 = 10 bytes.
Mảng 2 chiều và đa chiều
Bây giờ các bạn thử tưởng tượng nếu kiểu dữ liệu của mảng một chiều là mảng một chiều? Hay nói cách khác, chúng ta có một mảng chứa các mảng một chiều? Lúc này, chúng trở thành mảng 2 chiều. Mảng đa chiều cũng tương tự như mảng 2 chiều nhưng lúc này có nghĩa là mảng n chiều sẽ chứa một mảng n-1 chiều.
Để khai báo mảng 2 chiều gồm 5×5 phần tử ta làm như sau:
int a[5][5];
Hình ảnh mô phỏng
Khi mô phỏng nó bằng hình ảnh, mỗi một hàng bên trên sẽ là một mảng một chiều, khi gộp tất cả các mảng 1 chiều tức là cả khối vuông bên trên ta được một mảng 2 chiều.