Sizeof trong c là gì

Sai. sizeof là một toán tử chứ không phải là hàm, điều đó có nghĩa là sẽ không có chuyện gửi tham số, thực thi mã, trả về như hàm bình thường. Và trong C/C++ có hàm nào mà nhận tham số là một kiểu vậy ?

Sai nốt. pragma pack chỉ là tính năng do trình dịch cung cấp thêm, C/C++ không có thứ này.
C/C++ cũng không quy định kích thước của một struct hay sự sắp xếp các thành phần của struct nên khi lập trình không nên mặc định cho là sizeof của cái này phải là bao nhiêu, hay ở vị trị này là thành phần nào ...

Điều hành sizeof, trong C #, là một nhà điều hành sử dụng để xác định kích thước (tính theo byte) của một loại không được quản lý đó không phải là một loại tài liệu tham khảo.

Xem thêm: Thuật ngữ công nghệ A-Z

Giải thích ý nghĩa

Nhà điều hành sizeof là một toán tử đơn hạng mà phải mất một tham số singe và được sử dụng với từ khóa "sizeof". Ngược lại với C ++, các nhà điều hành sizeof là một cấu trúc thời gian biên dịch, vì vậy các thông số có phải là một kiểu khép kín tiếng trong biên soạn, không biến. Các tham số cũng có thể là một enum, một con trỏ hoặc một cấu trúc do người dùng định nghĩa mà không cần bất kỳ lĩnh vực hoặc tham chiếu thuộc tính type. Đối với các loại được xác định trước nào đó, các nhà điều hành sizeof trả về một giá trị không đổi, trong khi việc sử dụng nó với các loại còn lại kết quả trong các giá trị dựa trên thực hiện.

What is the Sizeof Operator? - Definition

Sizeof operator, in C#, is an operator used to determine the size (in bytes) of an unmanaged type that is not a reference type.

Understanding the Sizeof Operator

The sizeof operator is a unary operator that takes a singe parameter and is used with the keyword "sizeof". In contrast to C++, the sizeof operator is a compile-time construct, so the parameter has to be a closed type known during compilation, not variables. The parameter can also be an enum, a pointer or a user-defined struct without any field or reference type properties. For certain predefined types, the sizeof operator returns a constant value, while its use with remaining types results in values based on implementation.

Toán tử sizeof khá đặc biệt so với các toán tử khác. Các toán tử chúng ta đã gặp cho đến nay được mã hoá dưới dạng các ký tự đơn trong khi toán tử sizeof trông giống như một biến.

Đừng nhầm lẫn: đây là toán tử tiền tố đơn phân và có mức ưu tiên cao nhất quả đất. Có một sự khác biệt nữa: một toán tử thông thường thì yêu cầu một giá trị như là đối số của nó và thường thay đổi giá trị theo những cách nhất định. Toán tử mới này mong muốn đối số của nó là một ký tự hoặc một biến hoặc một biểu thức được đặt trong dấu ngoặc đơn hoặc tên kiểu dữ liệu (đây là toán tử “C” duy nhất cho phép đối số của nó là một kiểu dữ liệu).

Toán tử sizeof cung cấp thông tin về bao nhiêu byte bộ nhớ mà đối số của nó chiếm (hoặc có thể chiếm). Cái tên của nó có vẻ đã nói lên tất cả phải không nào →

sizeof

Lưu ý:

  • không có khoảng trống giữa “size” và “of”
  • sizeof không chỉ là một toán tử – nó cũng là một từ khóa

Hãy xem đoạn code sau →

C++

1

2

int i; char c;

i = sizeof c;

Biến i sẽ được gán giá trị 1 vì giá trị char luôn chiếm 1 byte bộ nhớ. Lưu ý rằng chúng ta có thể đạt được hiệu quả tương tự bằng cách viết:

C++

1

int i = sizeof (char);

Bạn có thể không sử dụng dấu ngoặc đơn khi đối số là một giá trị, nhưng bạn phải sử dụng chúng khi đối số là một kiểu dữ liệu


Xem tiếp đoạn code sau →

C++

1

2

char tab[10];

int i = sizeof tab;

Biến i sẽ được gán giá trị là 10 vì đó là số byte bị chiếm bởi toàn bộ mảng tab.


Còn trong trường hợp này thì i sẽ bằng 1 →

C++

1

2

char tab[10];

int i = sizeof tab[0];


Chúng tôi nghĩ rằng sẽ là một bài tập tốt nếu bạn code và chạy chương trình sau đây trên máy tính của bạn. Bằng cách này, bạn sẽ học được cách máy tính và trình biên dịch sử dụng bộ nhớ →