C言語で配列の要素数を取得する方法

C言語の配列には要素数を取得するための仕組みが内蔵されていませんが、以下の2つの方法で要素数を取得できます。

  1. sizeof演算子を利用できます。配列の合計バイト数をsizeof演算子で計算し、各要素のバイト数で割れば、配列の要素数を取得できます。例:
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);

ここで、sizeof(arr)は配列arrの合計のバイト数を返し、sizeof(arr[0])は配列の最初の要素のバイト数を返し(つまりint型のバイト数)、この2つの値を割ると、配列要素の数が得られる。

  1. プリプロセスマクロを使う:プリプロセスマクロを使って配列の要素の数を計算するマクロを定義できます。例:
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
int arr[] = {1, 2, 3, 4, 5};
int size = ARRAY_SIZE(arr);

ARRAY_SIZE(arr) はマクロで、配列のバイト数を各要素のバイト数で割ったもの、すなわち配列の要素数を取得できる

いずれの方法を使用しても、配列要素の数を取得できる。

bannerAds