[ad_1]
toán tử sizeof() tính toán kích thước của mảng như thế nào
Những gì tôi đã thử:
Tôi đã viết sizeof(x) để tính kích thước của mảng nhưng tôi không nhận được kết quả như mong đợi.
Giải pháp 1
sizeof
trả về số byte được tham số sử dụng: đối với một mảng, kích thước của mỗi phần tử nhân với số phần tử.
Thử cái này xem sao:
C
#include <stdio.h> int main() { int arr[10]; printf("%lu:%lu\n", sizeof(arr), sizeof(arr[0])); return 0; }
Và bạn sẽ nhận được kết quả “40:4”: tổng mảng sử dụng 40 byte bộ nhớ và mỗi phần tử trong số 10 phần tử trong mảng sử dụng 4 byte.
Giải pháp 2
Một bổ sung nhỏ: biểu thức bạn đã viết,
C
sizeof( x ) / sizeof( x[0] )
được sử dụng để tính số phần tử trong một mảng. Điều này cũng giống như những gì _countof
macro thực hiện trong VisualStudio C++.
Tóm tắt ba biểu thức và kết quả của chúng cho int x[8]
:
sizeof(x) size in bytes of x : 32 sizeof(x[0]) size in bytes of one item of x : 4 sizeof(x)/sizeof(x[0]) number of items in x : 8
[ad_2]
コメント