Khai báo mảng 2 chiều trong c
Dẫn nhập
Ở bài học kinh nghiệm trước, bản thân đã chia sẻ cho chúng ta về CÁC THAO TÁC TRÊN MẢNG MỘT CHIỀU TRONGC++.
Bạn đang xem: Khai báo mảng 2 chiều trong c
Hôm nay, mình sẽ trình làng cho chúng ta về một dạng không giống của kiểu dữ liệu mảng, đó là Mảng 2d (Two-dimensional arrays) vào C++.
Nội dung
Để phát âm hiểu bài này xuất sắc nhất các bạn nên có kiến thức cơ bạn dạng về:
Trong bài ta sẽ cùng mày mò các vấn đề:
Mảng 2 chiều là gì?Khai báo và khởi sinh sản mảng 1 chiềuXuất các thành phần mảng 2 chiềuNhập các phần tử mảng 2 chiềuMảng 2d là gì?
Trong bài MẢNG MỘT CHIỀU vào C++ (Arrays), chúng ta đã biết được mảng là 1 kiểu dữ liệu có cấu trúc do người lập trình định nghĩa, màn trình diễn một dãy các biến bao gồm cùng kiểu.
Ví dụ:
int a<5> = 6, 4, 3, 7, 2 ;
Hình dưới mô tả 1 mảng tên là a tất cả kiểu int gồm 5 thành phần (đã khởi tạo) nằm trong vùng nhớ RAM:

Các phần tử trong một mảng, có thể là bất kỳ kiểu tài liệu nào, cùng nó cũng rất có thể là kiểu dữ liệu mảng. Nếu như các bộ phận trong mảng bao gồm kiểu tài liệu mảng, nó được điện thoại tư vấn là mảng nhiều chiều.
Một mảng của một mảng được call là mảng nhiều chiều (multidimensional array).
Ví dụ mảng 2 chiều:
int a<2><3> = 6, 4, 3 , // row 1 7, 2, 8 // row 2;
Hình bên dưới mô tả mảng 2 chiều thương hiệu là a gồm kiểu int tất cả 2 thành phần (đã khởi tạo), mỗi bộ phận là mảng một chiều 3 phần tử (thường được điện thoại tư vấn là 2 cái 3 cột):

Dù mảng a là 2 chiều hay nhiều chiều, nhưng bản chất khi lưu giữ vào bộ nhớ RAM, nó vẫn là 1 vùng nhớ tất cả những ô nhớ liên tiếp nhau.
Khai báo với khởi chế tác mảng 2 chiều
Khai báo mảng 2 chiều
Cú pháp:<><>;
Lưu ý:
Phải xác định và cụ thể (hằng số) lúc khai báo.Nên sử dụng thông tư tiền cách xử lý #define để tư tưởng mảng.Tổng số phần tử = * .Bộ nhớ thực hiện = * sizeof().Ví dụ:
int a<10><20>, b<10><20>;int c<5><10>;int d<10><20>;
Chú ý: khi một mảng chưa khởi tạo, các phần tử của mảng sẽ với giá trị rác.
Xem thêm: Why Education Is More Important Now Than Ever Before &Mdash; The Foundation For Tomorrow
Khởi chế tạo ra giá trị mang đến mảng 2 chiều
Cách 1: Khởi chế tạo ra giá trị cho mọi bộ phận của mảng
int a<2><3> = 6, 4, 3 , // row 1 7, 2, 8 // row 2;

Cách 2: Khởi chế tác giá trị cho một số bộ phận đầu mảng
int a<2><3> = 6 , // row 1 7, 2, 8 // row 2;

Cách 3: Khởi tạo ra giá trị 0 mang lại mọi phần tử của mảng
int a<2><3> = ;

Cách 4: Tự động xác minh số lượng phần tử
int a<><3> = 6, 4, 3 , // row 1 7, 2, 8 // row 2;

Không giống hệt như mảng 1 chiều, mảng 2 chiều không mang lại phép khai báo mặt dưới:
int a<><> = 6, 4, 3 , // row 1 7, 2, 8 // row 2;Cách 5: Sử dụng khởi tạo đồng bộ (uniform initialization) trong C++11 (tương tự như các cách trên, nhưng lại bỏ đi lốt bằng “=”)
int a<2><3> 6, 4, 3 , // row 1 7, 2, 8 // row 2;int b<2><3> 6 , // row 1 7, 2, 8 // row 2;int c<2><3> ;int d<><3> 6, 4, 3 , // row 1 7, 2, 8 // row 2;
Xuất các phần tử mảng 2 chiều
Để truy xuất quý hiếm của phần tử vào mảng, ta áp dụng cú pháp:<><>;
Ví dụ: Cho mảng như sau:
int a<2><3> // 2 dòng, 3 cột

Các truy vấn xuất:
Hợp lệ: a<0><0>, a<0><1>, …, a<1><1>, a<1><2>Không thích hợp lệ: a<-1><0>, a<0><-1>, a<2><3>, … => cho công dụng không như mong muốn (có thể gây bị tiêu diệt chương trình).Chú ý: khi truy xuất 1 phần tử mảng, luôn đảm bảo chỉ số của thành phần đó là vừa lòng lệ trong phạm vi của mảng.
Ví dụ lịch trình khởi chế tạo và xuất các thành phần mảng:
#include using namespace std;#define ROW 2 // Max row#define COL 3 // Max columnint main()// khởi tạo nên mảng 2 cái 3 cộtint arr

Chương trình trên thực hiện 2 vòng lặp for, 1 vòng lặp chạy từ bỏ 0 mang đến ROW – 1 để truy cập vào từng dòng, bên trên mỗi dòng sẽ có 1 vòng lặp chạy tự 0 mang lại COL – 1 để truy cập vào từng cột.
Nhập các phần tử mảng 2 chiều
Để gán giá trị cho chỗ tử vào mảng, ta sử dụng cú pháp:
<><> = ;
Ví dụ những phép gán vừa lòng lệ:
int a<2><3>;a<0><0> = 6;a<0><1> = 4;a<0><2> = 3;a<1><0> = 7;a<1><1> = 2;a<1><2> = 8;Ví dụ các phép gán KHÔNG hòa hợp lệ (gây bị tiêu diệt chương trình):
int a<2><3>;a<-1><0> = 6;a<0><-1> = 4;a<2><3> = 3;
Chú ý: lúc truy cập một phần tử mảng, luôn đảm bảo chỉ số của thành phần đó là phù hợp lệ trong phạm vi của mảng.
Ví dụ chương trình yêu mong nhập dữ liệu cho mảng 2 chiều, sau đó xuất ra màn hình:
#include using namespace std;#define ROW 100 // Max row#define COL 100 // Max columnint main()// khởi tạo nên mảng 2 dòng 3 cộtint arr

Ví dụ chương trình phân phát sinh dữ liệu cho mảng 2 chiều, kế tiếp xuất ra màn hình:
#include #include #include using namespace std;#define ROW 100 // Max row#define COL 100 // Max columnint main(){// khởi tạo thành mảng 2 dòng 3 cộtint arr

Kết luận
Qua bài học kinh nghiệm này, chúng ta đã hiểu rằng khái niệm và giải pháp sử Mảng 2d (Two-dimensional arrays) vào C++. Mảng 2 chiều được áp dụng khá thịnh hành trong lập trình, nó được vận dụng vào các bài toán vật thị, hoặc các trò nghịch như trò chơi caro, cờ vua, …
Trong bài bác tiếp theo, bản thân sẽ giới thiệu cho các bạn CÁC THAO TÁC TRÊN MẢNG 2 CHIỀUtrong C++.
Cảm ơn các bạn đã theo dõi bài xích viết. Hãy để lại comment hoặc góp ý của chính bản thân mình để phạt triển nội dung bài viết tốt hơn. Đừng quên “Luyện tập – thử thách – không lo ngại khó”.
Xem thêm: Iphone X Có Chống Nước Hay Không, Sử Dụng Dưới Mưa Có Làm Sao Không
Thảo luận
Nếu bạn có bất kỳ khó khăn hay vướng mắc gì về khóa học, đừng rụt rè đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI và ĐÁP trên thư viện thietkewebshop.vn.com để nhận thấy sự hỗ trợ từ cộng đồng.