Những thông tin cần biết về toán tử Sizeof trong C

Với ngôn ngữ lập trình C thì sẽ chứa nhiều các thuật toán, toán tử khác nhau. Trong đó Sizeof trong C được sử dụng phổ biến để tính toán xem loại dữ liệu chiếm bao nhiêu byte trong bộ nhớ. Điều này đặc biệt hữu ích khi làm việc cùng với cấu trúc. Và phân bổ bộ nhớ động bằng cách sử dụng malloc hoặc khi viết mã nhằm mục đích di động giữa các trình biên dịch C trên các nền tảng khác nhau.

Hiện nay, có một vài loại dữ liệu có thể có kích thước khác khi được biên dịch trên các hệ thống khác nhau và việc phát hiện điều này trong các chương trình của bạn sẽ giúp quá trình chuyển đổi trở nên dễ dàng hơn. Cụ thể sẽ được Box.edu chia sẻ kỹ hơn ở bài viết này nhé!

Xem thêm: Tổng quan những kiến thức cần lưu ý về hàm C fopen

Xem thêm: Chương trình C để chuyển đổi số thập phân sang định dạng nhị phân

Xem thêm: Định dạng chuỗi C string format hướng dẫn cho người mới

Cú pháp và Sizeof trong C của các kiểu dữ liệu cơ bản

cu-phap-va-sizeof-trong-c-cua-cac-kieu-du-lieu-co-ban.jpg

Cú pháp và Sizeof trong C của những kiểu tài liệu cơ bản
Các kiểu tài liệu cơ bản trong ngôn từ C gồm có : char, short, int, long, float và double đều có những kích cỡ khác nhau tùy thuộc vào việc tiến hành ngôn từ mà bạn đang thao tác và size của bus tài liệu trong đơn vị chức năng giải quyết và xử lý TT ( CPU ) của máy đích. Đặc tả ngôn từ C thường chỉ đạt kích cỡ tối thiểu của những loại này .
Ngoài ra bạn cũng hoàn toàn có thể sử dụng Sizeof trong ngôn từ C để trả về size đúng mực của những loại này đơn cử :
/ *
*
* Tính toán kích cỡ của những loại tài liệu trong C bằng cách sử dụng Sizeof
*
* /

#include

void main ( ) {
printf ( “ \ r \ nUdemy. com – Tính kích cỡ của những kiểu tài liệu trong C bằng cách sử dụng Sizeof \ r \ n \ r \ n ” ) ;
printf ( “ Char : % u \ r \ n ”, sizeof ( char ) ) ;
printf ( “ Ngắn : % u \ r \ n ”, sizeof ( ngắn ) ) ;
printf ( “ Int : % u \ r \ n ”, sizeof ( int ) ) ;
printf ( “ Dài : % u \ r \ n ”, sizeof ( dài ) ) ;
printf ( “ Float : % u \ r \ n ”, sizeof ( float ) ) ;
printf ( “ Double : % u \ r \ n ”, sizeof ( double ) ) ;
}
Có thể nói phần lớn những tiến hành của ngôn từ lập trình C đều trả về giá trị dưới dạng số nguyên hoặc phổ cập hơn là kiểu tài liệu size_t. Giá trị của size_t sẽ được tự động hóa chuyển sang những kiểu số nguyên khác trong quy trình sử dụng .
Ngoài ra Sizeof cũng hoàn toàn có thể đồng ý tên của một biến và sẽ trả về kích cỡ của kiểu cơ bản của nó. Khi sử dụng một biến, Sizeof thường hoàn toàn có thể được đi kèm với dấu ngoặc đơn như trong ví dụ trên hoặc không có dấu ngoặc đơn như ví dụ dưới đây :
void main ( ) {
int i = 0 ;
printf ( “ I : % u \ r \ n ”, sizeof i ) ;
}
Một điều cần quan tâm đó là bộ tiền giải quyết và xử lý C sẽ chịu nghĩa vụ và trách nhiệm giải quyết và xử lý những macro và thông tư tiền giải quyết và xử lý không có hiểu biết về những loại do đó toán tử Sizeof trong C không hề được sử dụng trong những thông tư như # if .

Cấu trúc của Sizeof trong C

Tiếp theo những bạn cần nắm được cấu trúc của Sizeof để hoàn toàn có thể hiểu rõ hơn về toán tử này. Cùng theo dõi tiếp nhé !
Tùy thuộc vào mạng lưới hệ thống của bạn, giá trị được trả về bởi Sizeof ( char ) thường sẽ là 1 vì kiểu char thường được tàng trữ dưới dạng một byte duy nhất. Về mặt kim chỉ nan, size của một cấu trúc sẽ chứa cả ba kiểu ký tự. Và trên mỗi trình biên dịch được sử dụng để kiểm tra mã trong C sẽ được triển khai như sau :

/ * * Tính toán kích thước của các loại dữ liệu trong C bằng cách sử dụng Sizeof * * / #include struct Test { ký tự c1; ký tự c2; ký tự c3; } myTest; void main () { printf ("Struct:% u \ r \ n", sizeof myTest); }

Trong trường hợp này những bạn hoàn toàn có thể giám sát kích cỡ của một cấu trúc bằng cách chuyển một biến đã khai báo của kiểu đó làm đối số cho Sizeof ( ) hoặc bằng cách sử dụng từ khóa struct trong lệnh gọi Sizeof ( ). Ví dụ là : Sizeof ( struct Test ) .
Trong ví dụ tiên phong, Sizeof ( short ) sẽ đồng thời trả về 2 – short và được tàng trữ dưới dạng số 16 bit, được tạo thành từ hai byte. Do vậy, kích cỡ của một cấu trúc chứa một kiểu ngắn và hai kiểu ký tự phải là 4. Nhưng trên thực tiễn nó không như vậy .

/ * * Tính toán kích thước của các loại dữ liệu trong C bằng cách sử dụng Sizeof * * / #include struct Test { ký tự c1; s2 ngắn; ký tự c3; } myTest; void main () { printf ("Struct:% u \ r \ n", sizeof (myTest)); }

Nếu bạn sử dụng trình biên dịch C từ Microsoft Visual Studio. Với setup trình biên dịch mặc định thì kích cỡ của cấu trúc này là 6 byte, không phải 4. Điều này là do quy trình đóng gói cấu trúc mà trình biên dịch sử dụng để thao tác với cấu trúc này thuận tiện hơn. Mặc dù việc đóng gói thường hoàn toàn có thể biến hóa bằng cách sử dụng những thông tư của trình biên dịch, những thông tư này sẽ khác nhau so với mỗi trình biên dịch. Vì vậy nếu bạn muốn mã của mình được biên dịch nguyên trạng trên những trình biên dịch khác nhau, bạn hoàn toàn có thể cần phải dựa vào việc sử dụng Sizeof khi cấp phép bộ nhớ cho cấu trúc, đọc chúng từ những luồng đầu vào hoặc ghi chúng vào những luồng đầu ra .

Mảng, chuỗi và con trỏ Sizeof trong C

mang-chuoi-va-con-tro-sizeof-trong-c.jpg

Mảng, chuỗi và con trỏ Sizeof trong C
Sizeof ( ) hoàn toàn có thể được sử dụng với cả mảng và chuỗi trong C. Tuy nhiên, không phải khi nào nó cũng hoạt động giải trí như bạn mong đợi. Kích thước của một mảng thường được trả về bởi Sizeof ( ) là tổng số byte mà nó chiếm. Chính vì thế mà một mảng hoàn toàn có thể chứa 100 mục kiểu int ( thường là 4 byte ). Tương tương với size là 400 byte .
Cụ thể để tính được độ dài của mảng ( hay số lượng những mục trong mảng ), thì bạn hoàn toàn có thể sử dụng biểu thức dưới đây :

sizeof ( mảng ) / sizeof ( mảng [ 0 ] )

Ví dụ :

void main ( ) { int buf [ 100 ] ; printf ( " Kích thước mảng : % u \ r \ n ", sizeof ( buf ) ) ; printf ( " Độ dài mảng : % u \ r \ n ", sizeof ( buf ) / sizeof ( buf [ 0 ] ) ) ; }

Cần quan tâm khi thực thi truyền những đối số cho những hàm sử dụng Sizeof trong C. Để xác lập size của chúng. Nếu bạn sử dụng con trỏ và không thêm toán tử hội nghị thì Sizeof ( ). Sẽ trả về kích cỡ của một con trỏ. Chứ không phải kích cỡ của đối tượng người tiêu dùng mà nó trỏ đến .

/ * * * Udemy.com * Tính toán kích thước của các loại dữ liệu trong C bằng cách sử dụng Sizeof * * / #include #include Typedef struct Kiểm tra { ký tự c1; ký tự c2; ký tự c3; } myTest; void main () { myTest * mTest;printf ( " \ r \ nUdemy. com - Tính size của những kiểu tài liệu trong C bằng cách sử dụng Sizeof \ r \ n \ r \ n " ) ; mTest = (myTest *) malloc (sizeof (myTest)); printf ("Kích thước của Con trỏ:% u \ r \ n", sizeof (mTest)); printf ("Kích thước của Struct:% u \ r \ n", sizeof (* mTest)); miễn phí (mTest); }

Tìm hiểu thêm về Sizeof trong C

Trong những ngôn từ có nguồn gốc từ C, ví dụ như C + + và Objective-C. Thì toán tử Sizeof hầu hết hoạt động giải trí dựa trên những kiểu tài liệu cơ bản. Theo cách tựa như khi được diễn đạt ở đây. Tuy nhiên, những lớp và đối tượng người tiêu dùng thường sẽ được đóng gói. Và đệm theo kiểu tương tự như giống như cấu trúc C. Hoặc hoàn toàn có thể là con trỏ. Đối với cả 2 trường hợp này thì việc sử dụng toán tử Sizeof. Có thể gây khó khăn vất vả và những hàm. Hay toán tử khác thường được cung ứng để triển khai việc làm .
Những ví dụ ở trên được trình diễn tương đối cơ bản. Nhưng chúng lại có tương quan đến việc sử dụng những tính năng của ngôn từ C. Do đó với những bạn mới mở màn thì khuyến khích. Nên khám phá về Sizeof trong C. Cùng những toán tử khác để hoàn toàn có thể hiểu rõ hơn về ngôn từ lập trình C .

Tổng kết

Qua những thông tin về Sizeof trong C được Box.edu tổng hợp. Và chia sẻ đến các bạn thì mong rằng sẽ đem lại cho bạn thêm nhiều những kiến thức bổ ích. Trong việc học ngôn ngữ C một cách hiệu quả. Bản thân lập trình viên cũng cần bổ sung cho mình nhiều thông tin. Quan trọng về các toán tử trong C nhiều hơn nữa để phục vụ cho quá trình làm việc. Cuối cùng là chúc các bạn thành công!

5

/

5 ( 5 bầu chọn )