3.1.5 Toán tử sizeof

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 →

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:

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 →

Biến 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ì sẽ bằng 1 →


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ớ →