Mảng là tập dữ liệu đồng nhất lưu trong bộ nhớ liên tục. Đôi khi cần mảng 2 chiều hoặc đa chiều.
Mảng 2 chiều có thể biểu diễn theo 2 cách:
- Row-major (hàng chính): liệt kê hàng 0 từ trái sang phải, rồi hàng 1, hàng 2... Hàm ánh xạ: (i * c + j)
- Column-major (cột chính): liệt kê cột 0 từ trên xuống, rồi cột 1... Hàm ánh xạ: (i + j * r)
Với mảng r hàng, c cột, tổng phần tử n = r * c. Phần tử A[i,j] với 0 ≤ i < r, 0 ≤ j < c.

Ví dụ mã nguồn (C)
#include <stdio.h>
int main() {
int a[5][2] = {{0,0}, {1,2}, {2,4}, {3,6}, {4,8}};
int i, j;
for (i = 0; i < 5; i++) {
for (j = 0; j < 2; j++) {
printf("a[%d][%d] = %d\n", i, j, a[i][j]);
}
}
return 0;
}
Kết quả
a[0][0] = 0 a[0][1] = 0 a[1][0] = 1 a[1][1] = 2 a[2][0] = 2 a[2][1] = 4 a[3][0] = 3 a[3][1] = 6 a[4][0] = 4 a[4][1] = 8