カテゴリ: C言語 更新日: 2026/02/12

C言語のsizeof演算子の使い方を完全ガイド!初心者でもわかる型サイズの確認方法

C言語のsizeof演算子と型サイズ確認方法
C言語のsizeof演算子と型サイズ確認方法

先生と生徒の会話形式で理解しよう

生徒

「C言語には演算子がたくさんありますよね?その中で、sizeofってどんな役割なんですか?」

先生

「sizeofは、変数や型の大きさを調べるための演算子です。」

生徒

「変数の大きさってどういうことですか?」

先生

「プログラムで扱うデータは、コンピューターのメモリを使って保存されます。sizeofを使うと、そのデータが何バイトのメモリを使うか確認できます。」

生徒

「メモリって聞くと、自分で設定しないといけないのかなと思って難しそうですね…。」

先生

「心配いりません。sizeofを知っておくと、メモリの仕組みを理解しやすくなり、安心してプログラムが書けるようになりますよ。」

1. sizeof演算子とは?

1. sizeof演算子とは?
1. sizeof演算子とは?

C言語のsizeof演算子は、変数やデータ型がメモリ上で何バイト使うか調べるための演算子です。「バイトとは、データを保存する最小の単位」です。例えば、小さな数字は少ないバイト、大きな数字や文字列はたくさんのバイトを使います。

書き方はとても簡単で、型または変数の名前をsizeofに渡すだけです。


sizeof(int);
sizeof(a);

このように書くと、int型や変数aが何バイト使っているのかをC言語が教えてくれます。

2. 実際に型のサイズを調べてみよう

2. 実際に型のサイズを調べてみよう
2. 実際に型のサイズを調べてみよう

今から、よく使う基本データ型のサイズを調べてみましょう。ここでは、C言語の標準関数printfで結果を表示します。


#include <stdio.h>

int main(void)
{
    printf("intのサイズは %zu バイトです\n", sizeof(int));
    printf("charのサイズは %zu バイトです\n", sizeof(char));
    printf("doubleのサイズは %zu バイトです\n", sizeof(double));

    return 0;
}

intのサイズは 4 バイトです
charのサイズは 1 バイトです
doubleのサイズは 8 バイトです

このように、人間が数えなくても、C言語が自動的にサイズを計算してくれます。

3. なぜサイズを調べる必要があるのか?

3. なぜサイズを調べる必要があるのか?
3. なぜサイズを調べる必要があるのか?

「数字が入るんだから何バイトでもいいじゃないか」と思うかもしれません。しかし、コンピューターは決まった量のメモリしか持っていません。無限に使えるわけではないので、どのデータがどれだけメモリを使うか知っておくことは重要です。

C言語の学習でよく出てくるintやcharといった型は、それぞれ使うメモリの量が違います。型のサイズを理解すると、メモリを効率よく使えるようになり、大きなプログラムでも安心して作れるようになります。

4. 変数のサイズを調べる方法

4. 変数のサイズを調べる方法
4. 変数のサイズを調べる方法

sizeofはデータ型だけではなく「変数を指定して調べる」こともできます。


#include <stdio.h>

int main(void)
{
    int a = 10;
    double b = 3.14;
    char c = 'A';

    printf("変数aのサイズ: %zu バイト\n", sizeof(a));
    printf("変数bのサイズ: %zu バイト\n", sizeof(b));
    printf("変数cのサイズ: %zu バイト\n", sizeof(c));

    return 0;
}

変数aのサイズ: 4 バイト
変数bのサイズ: 8 バイト
変数cのサイズ: 1 バイト

型と同じく、変数のサイズも簡単に確認できます。C言語のプログラムはパソコンごとに動きが変わる場合もあるため、実際にサイズを確認できることはとても便利です。

5. 配列のサイズを調べる方法

5. 配列のサイズを調べる方法
5. 配列のサイズを調べる方法

sizeof演算子は配列にも使うことができます。配列は同じ型のデータを並べて保存する入れ物です。例えば、10個の整数が入る配列は、整数10個分のバイトを使います。


#include <stdio.h>

int main(void)
{
    int array[10];
    printf("配列arrayのサイズ: %zu バイト\n", sizeof(array));

    return 0;
}

配列arrayのサイズ: 40 バイト

int型が4バイトの環境では、4 × 10で40バイトになります。このように、配列のサイズをすぐに調べられるのもsizeofの便利なところです。

6. sizeofは計算式にも使える

6. sizeofは計算式にも使える
6. sizeofは計算式にも使える

配列の要素数を知りたいとき、sizeofを使うととても便利です。配列全体のサイズを、1つの要素のサイズで割るだけで求められます。


#include <stdio.h>

int main(void)
{
    int array[10];
    int count = sizeof(array) / sizeof(array[0]);

    printf("配列の要素数: %d\n", count);

    return 0;
}

配列の要素数: 10

この書き方はC言語ではよく使われる有名な方法で、プログラマーが手で数えなくても、プログラムが正しい値を教えてくれます。

7. sizeofの注意ポイント

7. sizeofの注意ポイント
7. sizeofの注意ポイント

sizeof演算子には、知っておいた方がいいポイントがあります。

まず、sizeofは演算子ですが、関数ではありません。見た目が関数に似ていても、処理の仕組みが違います。

さらに、文字列を扱うときは注意が必要です。文字列は終わりを示すために「ヌル文字」という特別な文字も含まれます。このため、見た目の長さと実際のサイズが一致しないことがあります。


char str[] = "ABC";
printf("%zu\n", sizeof(str));

4

ABCは3文字ですが、最後にヌル文字が追加されて4バイトになります。このような仕組みを知っておくと、C言語で文字を扱うときに困りません。

8. sizeofはC言語のメモリ管理を学ぶ第一歩

8. sizeofはC言語のメモリ管理を学ぶ第一歩
8. sizeofはC言語のメモリ管理を学ぶ第一歩

コンピューターは、見えないところでメモリを使って動いています。sizeofを理解すると、どのくらいのデータがメモリに置かれているかが分かり、プログラムの安全性も高まります。

たとえば、配列に入れられるデータ量が分からないと、入れすぎてプログラムが壊れてしまうことがありますが、サイズを把握していれば安心して書けるようになります。

C言語では、メモリの管理がとても大切な考え方です。その最初の入り口として、sizeof演算子はとても重要な存在です。

カテゴリの一覧へ
新着記事
New1
C++
C++のメンバアクセス演算子を完全解説!初心者でもわかる . → :: の使い方まとめ
New2
Rust
Rustの文字列を極める!&str(文字列スライス)の基本概念とString型との違い
New3
C++
C++のキャスト演算子を完全解説!dynamic_cast・static_cast・const_cast・reinterpret_castを初心者向けに説明
New4
C++
C++開発のIDE選びを完全ガイド!初心者でもわかるCLion・Eclipse CDT・Qt Creator比較
人気記事
No.1
Java&Spring記事人気No1
C++
C++の主要な実装をわかりやすく解説!GCC・Clang・MSVCの違いと特徴
No.2
Java&Spring記事人気No2
C言語
C言語を学ぶ初心者におすすめの環境構築手順【2025年版】
No.3
Java&Spring記事人気No3
C言語
C言語のソースコードとヘッダファイルの役割とは?初心者向けにわかりやすく解説!
No.4
Java&Spring記事人気No4
C言語
C言語をオンラインで実行できる便利なコンパイラサービスまとめ【初心者向け】
No.5
Java&Spring記事人気No5
C言語
Visual Studio CodeでC言語を実行する方法【拡張機能の設定と実行手順】
No.6
Java&Spring記事人気No6
C言語
C言語開発でよく使われるエディタとIDEランキング【初心者向け完全ガイド】
No.7
Java&Spring記事人気No7
C++
C++リンカとコンパイラのオプション設定を完全ガイド!初心者にもわかる開発環境の基礎
No.8
Java&Spring記事人気No8
C言語
C言語の列挙型(enum)の使い方を完全ガイド!初心者でもわかる基本操作