Mảng đa chiều C
Mảng đa chiều
Trong chương trước, bạn đã tìm hiểu về mảng , còn được gọi là mảng một chiều . Đây là những điều tuyệt vời và là thứ bạn sẽ sử dụng nhiều khi lập trình bằng C. Tuy nhiên, nếu bạn muốn lưu trữ dữ liệu dưới dạng bảng, chẳng hạn như bảng có hàng và cột, bạn cần làm quen với mảng đa chiều .
Mảng nhiều chiều về cơ bản là một mảng gồm nhiều mảng.
Mảng có thể có số chiều bất kỳ. Trong chương này, chúng tôi sẽ giới thiệu những điều phổ biến nhất; mảng hai chiều (2D).
Mảng hai chiều
Mảng 2D còn được gọi là ma trận (bảng gồm các hàng và cột).
Để tạo một mảng số nguyên 2D, hãy xem ví dụ sau:
int matrix[2][3] = { {1, 4, 2}, {3, 6, 8} };
Thứ nguyên đầu tiên biểu thị số hàng [2] , trong khi thứ nguyên thứ hai biểu thị số cột [3] . Các giá trị được đặt theo thứ tự hàng và có thể được hiển thị như thế này:
Truy cập các phần tử của mảng 2D
Để truy cập một phần tử của mảng hai chiều, bạn phải chỉ định số chỉ mục của cả hàng và cột.
Câu lệnh này truy cập giá trị của phần tử ở hàng đầu tiên (0) và cột thứ ba (2) của mảng ma trận .
Ví dụ
int matrix[2][3] = { {1, 4, 2}, {3, 6, 8} };
printf("%d",
matrix[0][2]); // Outputs 2
Hãy tự mình thử »Hãy nhớ rằng: Chỉ mục mảng bắt đầu bằng 0: [0] là phần tử đầu tiên. [1] là phần tử thứ hai, v.v.
Thay đổi các phần tử trong mảng 2D
Để thay đổi giá trị của một phần tử, hãy tham khảo số chỉ mục của phần tử trong mỗi thứ nguyên:
Ví dụ sau sẽ thay đổi giá trị của phần tử ở hàng đầu tiên (0) và cột đầu tiên (0) :
Ví dụ
int matrix[2][3] = { {1, 4, 2}, {3, 6, 8} };
matrix[0][0] = 9;
printf("%d", matrix[0][0]); // Now outputs 9 instead of 1
Hãy tự mình thử »Lặp qua mảng 2D
Để lặp qua một mảng nhiều chiều, bạn cần một vòng lặp cho mỗi chiều của mảng.
Ví dụ sau xuất ra tất cả các phần tử trong mảng ma trận :
Ví dụ
int matrix[2][3] = { {1, 4, 2}, {3, 6, 8} };
int i, j;
for (i = 0;
i < 2; i++) {
for (j = 0; j < 3; j++) {
printf("%d\n", matrix[i][j]);
}
}
Hãy tự mình thử »