Mảng là tập hợp các phần tử cùng kiểu nằm liên tiếp trong bộ nhớ. Chỉ số mảng bắt đầu từ 0 đến size - 1. Kích thước mảng phải là số nguyên dương.
Mảng đa chiều (multi-dimensional array) thực chất là mảng của mảng. Dữ liệu lưu theo thứ tự hàng (row-major order).
Cú pháp
type array_name[size1][size2]...[sizeN];
Khởi tạo
type array_name[size1][size2]...[sizeN] = {
{elements_row0},
{elements_row1},
...,
{elements_rowN-1}
};
Ví dụ mảng 2 chiều
#include <stdio.h>
int main() {
int arr[2][3] = { {5, 2, 3}, {28, 8, 30} };
int i, j;
for (i = 0; i < 2; i++) {
for (j = 0; j < 3; j++)
printf("arr[%d][%d] = %d\n", i, j, arr[i][j]);
}
return 0;
}
Kết quả
arr[0][0] = 5
arr[0][1] = 2
arr[0][2] = 3
arr[1][0] = 28
arr[1][1] = 8
arr[1][2] = 30
Giải thích: Mảng arr[2][3] có 2 hàng, 3 cột. Khởi tạo bằng danh sách lồng nhau. Duyệt bằng lồng vòng lặp for.
Mẹo: Khi khai báo mảng đa chiều, kích thước chiều đầu tiên có thể bỏ trống nếu khởi tạo ngay:
int arr[][3] = {{1,2,3}, {4,5,6}};. Các chiều còn lại phải chỉ định rõ.