最終更新:2014-03-10 (月) 14:52:42 (3697d)  

sizeof
Top / sizeof

データ型の大きさを求める単項の演算子

使い方

sizeof(型名)指定した型が利用するメモリサイズ
sizeof(変数名)その変数名で確保されているメモリサイズ
sizeof(値)値の型のメモリサイズを返す。

メモ

  • sizeofは原則としてコンパイル時計算される
  • C99可変長配列に対してsizeofを適用する場合、配列の大きさは実行時に動的に計算され、コンパイル時定数にはならない。
  • ポインター変数を指定した場合、ポインターの指している先に確保されているメモリサイズを返すのではなく、ポインターのサイズ(32bitCPUならたぶん4)が返る

C言語/配列

  • sizeofが配列型に使用されると、その配列がメモリ上に占める大きさが演算結果となる
  • sizeof x / sizeof x[0]の演算により、配列の要素数を求めることが可能
    double data[50];
    double sum = 0;
    for(int i = 0; i < sizeof(data) / sizeof(data[0]); ++i){
        sum += data[i];
    }
    • この方法はサイズの決まった配列変数(型 変数[])でないと使えない。ポインター変数(型 *変数)には使えない。

返り値の型

C♯