Translations of this page?:

sizeof

sizeof演算子はコンパイル時に動作する演算子で、引数で渡されたオブジェクトのサイズを返します。sizeはchar変数何個になるかという表現で返されますが、多くのコンピュータでは1バイト(8ビット)なので、そのままバイト数とみなすことができます。char変数のビット数は<climits>ヘッダファイルの中で定義されているCHAR_BIT定数に保存されています。例えば、以下のコードはsizeofを使用して変数のサイズを表示しています:

    struct EmployeeRecord {
      int ID;
      int age;
      double salary;
      EmployeeRecord* boss;
    };
 
    ...
 
    cout << "sizeof(int): " << sizeof(int) << endl
         << "sizeof(float): " << sizeof(float) << endl
         << "sizeof(double): " << sizeof(double) << endl
         << "sizeof(char): " << sizeof(char) << endl
         << "sizeof(EmployeeRecord): " << sizeof(EmployeeRecord) << endl;
 
    int i;
    float f;
    double d;
    char c;
    EmployeeRecord er;
 
    cout << "sizeof(i): " << sizeof(i) << endl
         << "sizeof(f): " << sizeof(f) << endl
         << "sizeof(d): " << sizeof(d) << endl
         << "sizeof(c): " << sizeof(c) << endl
         << "sizeof(er): " << sizeof(er) << endl;

マシンによって結果は変わりますが、上記のコードはとあるマシンでは以下のような出力を出します:

    sizeof(int): 4
    sizeof(float): 4
    sizeof(double): 8
    sizeof(char): 1
    sizeof(EmployeeRecord): 20
    sizeof(i): 4
    sizeof(f): 4
    sizeof(d): 8
    sizeof(c): 1
    sizeof(er): 20

sizeofの引数にはintなどの変数の型と、変数名(上記の例だとiなど)の両方を渡すことができます。 変数の型のサイズは使用しているシステムによって異なるというのは忘れてはいけないポイントです。 詳しくはC言語とC++のデータ型の説明を参照してください。sizeofのカッコは、型を渡す場合に必要になります(sizeof(int)など)。変数や配列を渡す場合にはカッコはオプションになります(sizeof x, sizof myArrayなど)。

関連トピック: C/C++データ型

 
• • • SitemapRecent changesRSScc