Lấy kích thước, độ dài và số phần tử trong mảng 2 chiều C++ | Laptrinhcanban.com

Lấy kích thước, độ dài và số phần tử trong mảng 2 chiều C++

Hướng dẫn cách lấy kích thước, độ dài và số phần tử trong mảng 2 chiều. Bạn sẽ biết cách lấy các thông số này của mảng 2 chiều trong C++ sau bài học này.

Lấy kích thước của mảng 2 chiều trong C++

Tương tự như với mảng 1 chiều thì chúng ta cũng sử dụng toán tử sizeof() mà Kiyoshi đã hướng dẫn trong bài Lấy kích thước mảng trong C++ để lấy kích thước của mảng 2 chiều trong C++ với cú pháp sau đây:

sizeof a;

Trong đó a là tên của mảng 2 chiều cần lấy kích thước.

Ví dụ cụ thể, chúng ta lấy kích thước của mảng số 2 chiều trong C++ như sau:

#include <iostream>
using namespace std;
int main(){
int bangdiem[][3] = {{7, 9, 8 }, {8, 6, 7}} ;

int size = sizeof bangdiem;
cout << size;
}
//24

Kết quả, chương trình trả về số 24, tương ứng với 24 byte mà mảng số 2 chiều này chiếm trong bộ nhớ máy tính. Cũng dễ hiểu vì trong mảng số 2 chiều này chứa 6 phần tử là các số thuộc kiểu int, với mỗi số int cần 4 byte để lưu giữ nó. Vậy nên 6 phần tử sẽ là 6 x 4 bằng 24 byte.

Một cách tương tự thì chúng ta có thể lấy kích thước của mảng chuỗi 2 chiều trong C++ như sau:

#include <iostream>
using namespace std;
int main(){
char s[][4] = {"ABC", "DE", "FGH"};

int size = sizeof s;
cout << size;
}
//12

Với cách tính toán tương tự, 3 chuỗi ký tự trong mảng chuỗi 2 chiều, với kích thước là 4 byte tương ứng với 4 ký tự char ( kiểu char có kích thước 1 byte), nên tổng kích thước sẽ là 1 x 4 x 3 bằng 12 như trên.

Lấy độ dài của mảng 2 chiều trong C++

Khác với mảng 1 chiều thì mảng 2 chiều được biểu diễn theo cả chiều dọc và chiều ngang, và tương ứng với chúng thì chúng ta sẽ có 2 loại độ dài, đó là độ dài mảng theo chiều dọcđộ dài mảng theo chiều ngang trong mảng 2 chiều.

Để lấy độ dài mảng theo chiều ngang, tức là lấy độ dài (số phần tử) trong các mảng 1 chiều, do là mảng 1 chiều nên cách lấy sẽ tương tự như phương pháp mà Kiyoshi đã hướng dẫn trong bài Độ dài mảng trong C++. Cú pháp sử dụng để lấy độ dài mảng theo chiều ngang sẽ như sau:

int x = sizeof(a[0]) / sizeof(a[0][0]);

Trong đó sizeof(a[0]) là kích thước của 1 mảng 1 chiều chứa trong mảng 2 chiều, và sizeof(a[0][0]); là kích thước của các phần tử tạo nên mảng.

Ví dụ cụ thể, chúng ta lấy độ dài của mảng số 2 chiều trong C++ như sau:

#include <iostream>
using namespace std;
int main(){
int a[][3] = {{7, 9, 8 }, {8, 6, 7}} ;

//Lấy độ dài của mảng 2 chiều
int y = sizeof(a) / sizeof(a[0]);
int x = sizeof(a[0]) / sizeof(a[0][0]);

cout << "Do dai mang 2 chieu: y = "<<y<<" , x = " <<x;
}
//Do dai mang 2 chieu: y = 2 , x = 3

Tương tự, chúng ta lấy độ dài của mảng chuỗi 2 chiều trong C++ như sau:

#include <iostream>
using namespace std;
int main(){
char fruits[][10] = {"Apple", "Kiwi", "Lemon", "Melon", "Orange"};

//Lấy độ dài của mảng 2 chiều
int y = sizeof(fruits) / sizeof(fruits[0]);
int x = sizeof(fruits[0]) / sizeof(fruits[0][0]);

cout << "Do dai mang 2 chieu: y = "<<y<<" , x = " <<x;
}
//Do dai mang 2 chieu: y = 5 , x = 10

Lấy số phần tử của mảng 2 chiều trong C++

Để lấy số phần tử của mảng 2 chiều trong C++, chúng ta làm phép nhân độ dài mảng theo chiều ngang với độ dài mảng theo chiều dọc là xong.

Cách lấy 2 loại độ dài trên đã được Kiyoshi hướng dẫn ở trên rồi, sau đây chúng ta sẽ cùng viết chương trình lấy số phần tử của mảng 2 chiều trong C++ nhé.

#include <iostream>
using namespace std;
int main(){
int bangdiem[][3] = {
{7, 9, 8} ,
{8, 6, 7} ,
{5, 7, 6} ,
{4, 9, 5} ,
{5, 8, 7} ,
{6, 9, 3}
} ;

//Lấy độ dài của mảng 2 chiều
int y = sizeof(bangdiem) / sizeof(bangdiem[0]);
int x = sizeof(bangdiem[0]) / sizeof(bangdiem[0][0]);

cout << "So phan tu cua mang 2 chieu: "<<y * x;
}
//So phan tu cua mang 2 chieu: 18

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách lấy kích thước, độ dài và số phần tử trong mảng 2 chiều rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C++ trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.