Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語のsizeof演算子とは?基本的な使い方とサンプルコードを解説

sizeof演算子とは

sizeof演算子は、C言語で最もよく使われる演算子の一つです。コンパイル時に評価される単項演算子であり、オペランドのサイズ(バイト数)を計算するために使用されます。sizeofは変数のサイズを返し、int型やfloat型といった基本データ型からポインタ型まで、あらゆるデータ型に適用することが可能です。

データ型に対するsizeofの使い方

sizeof()をデータ型に適用すると、そのデータ型に割り当てられるメモリ量(バイト数)を単純に返します。なお、実行結果は環境によって異なる場合がある点に注意してください。たとえば同じデータ型でも、32ビットシステムと64ビットシステムでは表示される値が変わることがあります。

以下に、C言語での具体的な使用例を示します。

サンプルコード

#include <stdio.h>
int main() {
int a = 16;
printf("変数aのサイズ : %d\n", sizeof(a));
printf("int型のサイズ : %d\n", sizeof(int));
printf("char型のサイズ : %d\n", sizeof(char));
printf("float型のサイズ : %d\n", sizeof(float));
printf("double型のサイズ : %d\n", sizeof(double));
return 0;
}

実行結果

変数aのサイズ : 4
int型のサイズ : 4
char型のサイズ : 1
float型のサイズ : 4
double型のサイズ : 8

式に対するsizeofの使い方

sizeof()を式に適用した場合、その式の評価結果となる型のサイズが返されます。次の例を見てみましょう。

サンプルコード

#include <stdio.h>
int main() {
char a = 'S';
double b = 4.65;
printf("変数aのサイズ : %d\n", sizeof(a));
printf("式(a+b)のサイズ : %d\n", sizeof(a+b));
int s = (int)(a+b);
printf("明示的に変換した式のサイズ : %d\n", sizeof(s));
return 0;
}

実行結果

変数aのサイズ : 1
式(a+b)のサイズ : 8
明示的に変換した式のサイズ : 4

まとめ

sizeof演算子を使えば、変数・データ型・式のメモリサイズをコンパイル時に取得できます。上の例では、char型変数aは1バイトですが、式「a + b」では暗黙的な型昇格によりdouble型(8バイト)として扱われ、明示的にint型へキャストした場合は4バイトになっています。このようにsizeofは、暗黙の型変換の挙動を確認する際にも役立つ非常に便利な演算子です。

  1. C#の単項演算子とは?一覧とsizeof演算子の使い方を解説

    C#の単項演算子とは単項演算子(unary operator)とは、1つのオペランドだけを受け取って処理を行う演算子のことです。C#で利用できる主な単項演算子は以下のとおりです。+ - ! ~ ++ -- (type) * & sizeofそれぞれの演算子が持つ役割は次のようになっています。+ … 単項プラス(値をそのまま返す)- … 単項マイナス(符号を反転する)! … 論理否定(true と false を入れ替える)~ … ビットごとの補数(各ビットを反転する)++ … インクリメント(値を1増やす)-- … デクリメント(値を1減らす)(type) … 明示的な型変換(キャスト

  2. C#のsizeof()演算子でデータ型や変数のサイズを取得する方法

    C#では、sizeof() 演算子を使うことで、任意のデータ型が占めるメモリサイズ(バイト数)を簡単に調べることができます。パフォーマンスの最適化やメモリ管理を意識したプログラミングにおいて、各型のサイズを把握しておくことは非常に重要です。sizeof() 演算子の基本的な使い方たとえば、int 型のサイズを取得したい場合は次のように記述します。sizeof(int);double 型の場合も同様です。sizeof(double);さまざまなデータ型のサイズを確認するサンプルコード以下は、代表的な複数のデータ型について sizeof() を使ってサイズを出力する完全なサンプルプログラムです。例