C言語 #7: データ型

独習C

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言語のデータ型を理解することで、プログラムのメモリ使用やパフォーマンスを効果的に管理することができます。

購読
通知
0 Comments
Inline Feedbacks
View all comments