1

こんにちは私はCプログラミングに不慣れです。誰でもこのコード行が何をするか教えてください:

i = (sizeof (X) / sizeof (int))

このコードは、bdataの値を取得し、それをさまざまなケースと比較するときに、実際にはcaseステートメントで機能します。

4

5 に答える 5

4

一般に、このようなステートメントは、配列内の要素の数を計算するために使用されます。

以下のように整数配列を考えてみましょう。

int a[4];

これで、sizeof(a)完了するとサイズとして返さ4*4 = 16れます。4つの要素と各要素は4バイトです。

したがって、これを行うsizeof(a) / sizeof(int)と、配列の長さまたはサイズである4が得られます。

于 2012-08-03T10:45:17.910 に答える
3

intこれは、 namedの配列の要素数を計算しXます。

于 2012-08-03T10:30:20.337 に答える
1

配列Xの長さを返します

于 2012-08-03T10:30:51.640 に答える
0

これは、メモリ内のXのボリュームをコンピュータ内の整数のサイズ(2バイトまたは4バイト)で割ったものを計算します。iが整数の場合、それは整数除算です。それがフロートであり、Xに均一なボリュームがない場合、それは実際の除算です。

intサイズは変更できます。Xは実装に依存します。除算の結果は、iのタイプによって異なります。

これらすべての意味で、Xに適合するintの数を計算します。

于 2012-08-03T10:33:09.503 に答える
0

一般的な慣習や個人的な経験に加えて、これが配列Xのサイズを計算すると考える理由はありませんi = (sizeof (X) / sizeof (int))。ほとんどの場合これが当てはまりますが、理論的にはXは任意のタイプである可能性があるため、与えられた式はサイズの比率を計算します。あなたのvarXとintの(バイト単位で、あなたのX varがintに対してどれだけ多くのメモリを占有するか)

さらに、Xが配列へのポインター(float * X、Cで配列を宣言する別の方法)である場合、この式は32ビットアーキテクチャでは1と評価されます。ポインタは4バイトになり、intも4バイトになります=>i = sizeof(X) / sizeof(int) (=1)

于 2012-08-03T14:06:35.170 に答える