[ad_1]
sizeof() 演算子は配列のサイズをどのように計算しますか
私が試したこと:
配列のサイズを計算するために sizeof(x) を書きましたが、期待した出力が得られませんでした。
解決策 1
sizeof
パラメータによって使用されるバイト数を返します。配列の場合は、各要素のサイズに要素の数を乗算した値です。
これを試して:
C
#include <stdio.h> int main() { int arr[10]; printf("%lu:%lu\n", sizeof(arr), sizeof(arr[0])); return 0; }
そして、結果「40:4」が得られます。配列の合計は 40 バイトのメモリを使用し、配列内の 10 個の要素はそれぞれ 4 バイトを使用します。
解決策 2
小さな追加: あなたが書いた式、
C
sizeof( x ) / sizeof( x[0] )
配列内の項目数を計算するために使用されます。 これは、 _countof
マクロは VisualStudio C++ で実行されます。
3 つの式とその結果を要約すると、 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]
コメント