Lấy kích thước mảng trong C | Laptrinhcanban.com

Lấy kích thước mảng trong C

Cùng tìm hiểu về kích thước mảng trong C. Bạn sẽ học được khái niệm kích thước mảng trong C là gì, cũng như cách lấy kích thước mảng trong C sau bài học này.

Kích thước mảng trong C

Kích thước mảng trong C là kích thước mà mảng đó chiếm trong bộ nhớ máy tính. Kích thước mảng trong C được tính bởi đơn vị byte, và kích thước của nó được tính bằng tổng kích thước của tất cả các phần tử trong nó.

Kích thước mảng trong C

Kích thước mảng trong C phụ thuộc vào kiểu dữ liệu và số phần tử của nó. Vì mảng là tập hợp các phần tử cùng kiểu dữ liệu nên chúng ta có thể lấy kích thước mảng trong C bằng cách nhân số phần tử trong mảng cho kích thước kiểu mảng của nó. Ví dụ như một mảng int có 3 phần tử, thì do mỗi phần tử thuộc kiểu int chiếm 4 byte trong bộ nhớ, nên tổng kích thước của mảng chính là 12 byte chẳng hạn.

Tuy nhiên, chúng ta không cần phải làm phép tính thủ công như thế, mà có thể sử dụng một toán tử có sẵn trong thư viện chuẩn để lấy kích thước mảng trong C.

Lấy kích thước mảng trong C | toán tử sizeof()

Toán tử sizeof là một toán tử để kiểm tra kích thước bộ nhớ của các đối tượng trong chương trình C như biến, mảng chẳng hạn. Toán tử sizeof trả về kích thước bộ nhớ của một biến hoặc một mảng được tính bằng đơn vị byte.

Ứng dụng toán tử sizeof(), chúng ta có thể lấy kích thước mảng trong C với cú pháp sau đây:

sizeof a;

Trong đó a chính là mảng chúng ta cần lấy kích thước.

Cách lấy kích thước mảng trong C như các ví dụ sau đây:

Ví dụ 1: Lấy kích thước mảng chuỗi trong C

#include <stdio.h>
int main(void){
char a[] = "abcdef";
int size = sizeof a;
printf("%d",size);
}
//7

Lưu ý là mảng chuỗi trong C bao gồm cả ký tự kết thúc chuỗi \0, do đó kích thước của ký tự này cũng được bao gồm trong kết quả phép lấy kích thước. Thế nên mặc dù chỉ có 6 ký tự là “abcdef” có thể quan sát được trong chuỗi, tương ứng với 6 byte, nhưng kết quả lại trả về 7 byte như trên.

Ví dụ 2: Lấy kích thước mảng số trong C

#include <stdio.h>
int main(void){
int a[] ={1,2,3,4,5};

int size = sizeof a;
printf("%d",size);
}
//20

Với mảng số, do mảng không tồn tại ký tự kết thúc chuỗi \0 trong nó, và ở ví dụ trên có 5 số thuộc kiểu int với 4 byte/ 1 phần tử, nên tổng kết quả thì kích thước mảng sẽ là 5 x 4 = 20 byte như trên.

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách lấy kích thước mảng trong C 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.