C言語,配列のサイズと要素数を取得する

スポンサーリンク

鍛錬 768

C言語,配列のサイズと要素数を取得する

配列の「サイズ」と「要素数」を取得(確認)するプログラムです。

sizeof()演算子を使用して取得します。

スポンサーリンク

プログラム

以下は、配列のサイズと要素数を取得するプログラム、check_array.c です。

今回は、「char型」「int型」「double型」について、それぞれ要素数を 256 として確認しています。

// include
#include <stdio.h>

// main
int main(void)
{
	char c[256];
	int i[256];
	double d[256];
	
	// char について確認
	printf("=====================================\n");
	printf("配列のサイズ(char c[256]) --> %ld\n", sizeof(c));
	printf("配列の要素数(char c[256]) --> %ld\n", sizeof(c) / sizeof(c[0]));
	printf("-------------------------------------\n");
	
	if (sizeof(c) == (sizeof(c[0]) * (sizeof(c) / sizeof(c[0])))) {
		printf("%ld = %ld * (%ld / %ld)\n", sizeof(c), sizeof(c[0]), sizeof(c), sizeof(c[0]));
		printf("\n\n");
	}
	
	
	
	// int について確認
	printf("=====================================\n");
	printf("配列のサイズ(int i[256]) --> %ld\n", sizeof(i));
	printf("配列の要素数(int i[256]) --> %ld\n", sizeof(i) / sizeof(i[0]));
	printf("-------------------------------------\n");
	
	if (sizeof(i) == (sizeof(i[0]) * (sizeof(i) / sizeof(i[0])))) {
		printf("%ld = %ld * (%ld / %ld)\n", sizeof(i), sizeof(i[0]), sizeof(i), sizeof(i[0]));
		printf("\n\n");
	}
	
	
	
	// double について確認
	printf("=====================================\n");
	printf("配列のサイズ(double d[256]) --> %ld\n", sizeof(d));
	printf("配列の要素数(double d[256]) --> %ld\n", sizeof(d) / sizeof(d[0]));
	printf("-------------------------------------\n");
	
	if (sizeof(d) == (sizeof(d[0]) * (sizeof(d) / sizeof(d[0])))) {
		printf("%ld = %ld * (%ld / %ld)\n", sizeof(d), sizeof(d[0]), sizeof(d), sizeof(d[0]));
		printf("\n\n");
	}
	
	return 0;
}
スポンサーリンク

実行結果

以下は、プログラム check_array.c を実行しています。

***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ gcc -Wall -Wextra check_array.c -o check_array
***@ubuntu:~/***/test/c$ ./check_array
=====================================
配列のサイズ(char c[256]) --> 256
配列の要素数(char c[256]) --> 256
-------------------------------------
256 = 1 * (256 / 1)


=====================================
配列のサイズ(int i[256]) --> 1024
配列の要素数(int i[256]) --> 256
-------------------------------------
1024 = 4 * (1024 / 4)


=====================================
配列のサイズ(double d[256]) --> 2048
配列の要素数(double d[256]) --> 256
-------------------------------------
2048 = 8 * (2048 / 8)

 
上記に示した通り、配列のサイズと要素数を取得することができました。

タイトルとURLをコピーしました