C言語には、さまざまな種類のデータ型があります。これらのデータ型は、プログラム内で使用されるデータの種類を定義します。データ型は主に以下のカテゴリに分類されます:基本データ型、派生データ型、列挙型、および型定義によるユーザー定義データ型。
1.基本データ型(Primitive Data Types)
1.1.整数型(int)
int: 整数を表す標準的なデータ型。short int: より小さな範囲の整数。long int: より大きな範囲の整数。long long int: 非常に大きな範囲の整数。unsigned int: 符号なし整数。
int a = 10; short int b = 5; long int c = 100000; long long int d = 10000000000; unsigned int e = 20;
1.2.浮動小数点型(Floating Point Types)
float: 単精度浮動小数点数。double: 倍精度浮動小数点数。long double: 拡張倍精度浮動小数点数。
float f = 3.14f; double g = 3.141592653589793; long double h = 3.141592653589793238462643383279502884L;
1.3.文字型(Character Type)
char: 単一の文字を表すデータ型。
char ch = 'A';
1.4.ブール型(Boolean Type)
bool: 真理値を表すデータ型(C99標準以降)。
#include <stdbool.h> bool flag = true;
2.派生データ型(Derived Data Types)
2.1.配列(Array)
- 同じデータ型の一連の要素を格納するデータ型。
int numbers[5] = {1, 2, 3, 4, 5};
2.2.ポインタ(Pointer)
- メモリ内のアドレスを格納するデータ型。
int a = 10; int *ptr = &a;
2.3.構造体(Structure)
- 異なるデータ型のグループをひとまとめにするデータ型。
struct Person {
char name[50];
int age;
};
struct Person person1 = {"Alice", 30};
2.4.共用体(Union)
- 異なるデータ型の中から一つを格納するデータ型。メモリを共有します。
union Data {
int i;
float f;
char str[20];
};
union Data data;
data.i = 10;
3.列挙型(Enumeration Type)
- 列挙型は、関連する定数のセットを作成するために使用されます。
enum Weekday {
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
};
enum Weekday today = Monday;
4.型定義によるユーザー定義データ型(Typedef)
typedefを使用して、既存のデータ型に新しい名前を付けることができます。
typedef int Integer; Integer x = 10;
5.例:さまざまなデータ型の使用
以下は、C言語のさまざまなデータ型を使用する基本的なプログラムの例です。
#include <stdio.h>
#include <stdbool.h>
typedef int Integer;
struct Person {
char name[50];
int age;
};
union Data {
int i;
float f;
char str[20];
};
enum Weekday {
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
};
int main() {
// 基本データ型
int a = 10;
float b = 3.14f;
char ch = 'A';
bool flag = true;
// 派生データ型
int numbers[5] = {1, 2, 3, 4, 5};
int *ptr = &a;
struct Person person1 = {"Alice", 30};
union Data data;
data.i = 100;
enum Weekday today = Monday;
// 型定義によるユーザー定義データ型
Integer x = 20;
// 出力
printf("Integer a: %d\n", a);
printf("Float b: %.2f\n", b);
printf("Character ch: %c\n", ch);
printf("Boolean flag: %d\n", flag);
printf("Array numbers: %d, %d, %d, %d, %d\n", numbers[0], numbers[1], numbers[2], numbers[3], numbers[4]);
printf("Pointer ptr: %p\n", ptr);
printf("Person name: %s, age: %d\n", person1.name, person1.age);
printf("Union data.i: %d\n", data.i);
printf("Enum today: %d\n", today);
printf("Typedef Integer x: %d\n", x);
return 0;
}
このプログラムは、さまざまなデータ型を使用して値を格納し、それらを出力します。C言語のデータ型を理解することで、プログラムのメモリ使用やパフォーマンスを効果的に管理することができます。
