C++ の sizeof 演算子で型と式のサイズを確認する方法

目次

概要

sizeof 演算子は、型あるいは式がメモリ上で占めるバイト数を取得できる便利な機能です。実行環境によってサイズが異なる場合があるため、プログラム内で動的に確認しておくと移植性の向上につながります。本稿では各種組込み型と変数、さらに式に対して sizeof を適用し、標準出力へ結果を表示するサンプルコードを提示いたします。

サンプルコード

// sizeof 演算子で型と式のサイズを表示するサンプル
#include <iostream>

int main(int /*argc*/, char* /*argv*/[])
{
    int value1 = 2;
    int value2 = 7;

    std::cout << "short int 型のサイズは "   << sizeof(short int)  << " バイトです。\n";
    std::cout << "int 型のサイズは "         << sizeof(int)        << " バイトです。\n";
    std::cout << "long int 型のサイズは "    << sizeof(long int)   << " バイトです。\n";
    std::cout << "float 型のサイズは "       << sizeof(float)      << " バイトです。\n";
    std::cout << "double 型のサイズは "      << sizeof(double)     << " バイトです。\n";
    std::cout << "long double 型のサイズは " << sizeof(long double)<< " バイトです。\n";
    std::cout << "変数 value1 のサイズは "   << sizeof(value1)     << " バイトです。\n";
    std::cout << "式 value1 + value2 のサイズは "
              << sizeof(value1 + value2) << " バイトです。\n";

    return 0;
}

コード解説

説明
2#include <iostream> により標準入出力ストリームを使用できます。
5整数型変数 value1value2 を宣言し初期化します。
7sizeof(short int) により 16 ビット環境等でのサイズを確認します。
8sizeof(int) はプラットフォームに応じて 4 または 8 バイトが一般的です。
9sizeof(long int) は 32 ビットと 64 ビット環境で差異が生じやすい箇所です。
10浮動小数点型 float のサイズを取得します。
11倍精度浮動小数点型 double のサイズを取得します。
12拡張倍精度 long double のサイズを取得します。
13変数そのものに sizeof を適用した場合、宣言型に基づくサイズが返されます。
14value1 + value2 の評価結果は int となるため、そのサイズが取得されます。

応用

構造体やクラスに対して sizeof を用いると、メンバ配置やパディングによる全体サイズを確認できます。テンプレートメタプログラミングと組み合わせれば、コンパイル時にサイズを検証し型制約を設けることも可能です。また、可変長配列を扱う際には動的確保前に sizeof で要素サイズを把握し、バッファ不足を防止できます。

まとめ

sizeof 演算子は、実行環境依存のメモリサイズをプログラム中で取得できるため、移植性確保やデバッグにおいて重要な役割を果たします。本記事では組込み型・変数・式に適用する例を示し、各結果の意味を整理いたしました。開発初期にサイズを確認しておくことで、データ構造設計やメモリ計算の精度を高められます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次