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

C言語のsize_tデータ型とは?特徴と使い方をわかりやすく解説

size_tは、C言語における符号なし整数型(unsigned integral type)です。任意のオブジェクトのサイズをバイト単位で表現し、sizeof演算子の戻り値として返されます。また、配列のインデックス指定やカウント処理にも広く利用されており、負の値になることはありません。さらに、標準ライブラリ関数であるstrcspnstrlenなどの戻り値の型もsize_tとして定義されています。

size_tの構文

C言語におけるsize_tの宣言方法は以下の通りです。

const size_t var_name;

各要素の意味は次の通りです。

  • var_name − 宣言する変数の名前を指定します。

size_tの使用例

ここで、C言語におけるsize_tの具体的な使用例を見てみましょう。

#include <stdio.h>
#include <stddef.h>
#include <stdint.h>
int main(void) {
    const size_t x = 150;
    int a[x];
    for (size_t i = 0; i < x; ++i)
        a[i] = i;
    printf("SIZE_MAX = %lu\n", SIZE_MAX);
    size_t size = sizeof(a);
    printf("size = %zu\n", size);
}

実行結果

SIZE_MAX = 18446744073709551615
size = 600

プログラムの解説

上記のプログラムでは、まずsize_t型の変数xを宣言し、その値(150)をサイズとして配列aを定義しています。size_tは符号なし整数型であるため、変数xには必ず0以上の値が格納されます。

続いて、sizeof(a)を使って配列a全体のサイズをバイト単位で計算しています。この例では、int型が4バイト、要素数が150個であるため、合計600バイトという結果が得られます。

printf("SIZE_MAX = %lu\n", SIZE_MAX);
size_t size = sizeof(a);

なお、SIZE_MAXはstddef.hヘッダーで定義されているマクロで、size_t型が表現できる最大値を示します。64ビット環境では「18446744073709551615」という非常に大きな値になります。

まとめ

size_tは、メモリサイズやオブジェクトの大きさを扱う際に適した符号なし整数型です。sizeof演算子や文字列操作関数との相性が良く、安全な配列操作を実現するために積極的に活用すると良いでしょう。

  1. C言語の列挙型(enum)とは?定義方法と使い方を実例付きで解説

    列挙型(enumerated data type)は、プログラマが独自のデータ型を作成し、そのデータ型を持つ変数が取りうる値を明確に定義するために使用される仕組みです。宣言にはenumというキーワードを使用します。列挙型を使うことで、曜日や月などの関連する定数群に名前を付けられ、コードの可読性と保守性が向上します。構文列挙型の基本的な構文は以下の通りです。enum タグ名{   識別子1, 識別子2,……,識別子n};記述例以下は、曜日を表す列挙型の定義例です。enum week{   mon, tue, wed, thu,

  2. C言語の基本データ型を徹底解説!int・char・floatの種類とサイズ一覧

    C言語の基本データ型とは? C言語のコンパイラがサポートする基本データ型は、大きく分けて次の4つです。 整数型(Integer) 文字型(Character) 浮動小数点型(Floating-point) 倍精度浮動小数点型(Double precision floating point) プログラムで扱う値の種類(整数・文字・実数など)に応じて適切な型を選ぶことは、正確で効率的なコードを書くための第一歩です。なお、各データ型のサイズや表現できる値の範囲は、使用するコンパイラや実行環境によって異なる場合がある点に注意してください。 整数型(Integral Data Type) 整数型は