C言語の基本型とは?全体像と選び方をわかりやすく解説

初心者さん

C言語って型がいろいろあって、何を使えばいいのか分かりません…

エンジニアくん

最初はみんなそこ迷うよね
まずは「基本型の全体像」から押さえよう


C言語では、データを扱うために「型(データ型)」という仕組みが用意されています。
int や char、float などさまざまな型がありますが、最初は「何が違うのか」「どれを使えばいいのか」で迷いやすいポイントです。

この記事では、C言語の基本型の全体像と、それぞれの使いどころを整理します。
まずは細かい仕様に入りすぎず、「どう使い分けるのか」という感覚をつかむことを目的にしています。


C言語文法解説シリーズ

本記事は「C言語文法解説シリーズ」の1つです。
C言語の文法を、組み込み開発の視点も交えて解説しています。

C言語文法解説シリーズ一覧はこちら


目次

基本型の分類

C言語の基本型は、大きく次の3つに分かれます。

  • 整数型(int系)
  • 浮動小数点型(float系)
  • 文字型(char)

この3つの役割を理解しておけば、多くのコードは読み書きできるようになります。


初心者さん

まずはこの3つだけ覚えればいいんですか?

エンジニアくん

そう。細かい違いはあとでいいから、まずは役割を押さえるのが大事だね


整数型(int系)

整数を扱うための型で、C言語の中でも最もよく使われます。

C
int a = 10;

整数型には、扱える値の大きさや用途に応じていくつかの種類があります。

特徴
char1バイトの整数
shortやや小さい整数
int一般的な整数
long大きい整数
long longさらに大きい整数

初心者さん

こんなにあると迷いませんか?

エンジニアくん

最初は迷うけど、考え方はシンプルだよ


■ 整数型の選び方

  • 特に制約がない場合 → int
  • 扱う値の範囲が決まっている → それに合う型
  • 通信データやバッファ → char や unsigned 系

👉 「用途に合わせて選ぶ」これが基本


※ 最大値・最小値やビット表現については、整数型の解説記事で詳しく説明しています。


■ 真偽値(bool)について

C言語では、条件分岐などで「真か偽か」を扱う場面が多くあります。
そのようなときに使うのが bool 型です。

C
#include <stdbool.h>

bool is_ready = true;

if (is_ready) {
  // 処理
}

初心者さん

intでも0とか1で書けますよね?

エンジニアくん

書けるけど、読みやすさが全然違うね


C
int is_ready = 1;  // 意味が分かりにくい

bool is_ready = true;  // 意味が明確

bool を使うことで、「これは状態を表す変数だ」という意図がはっきりします。
実体としては整数(0または1)ですが、意味を伝えるために使う型と考えると分かりやすいです。


浮動小数点型(float / double)

小数を扱う型です。

C
float f = 3.14f;
double d = 3.14;
特徴
floatメモリ使用量が少ない・精度が低い
double精度が高い

初心者さん

どっちを使えばいいんですか?

エンジニアくん

ここも用途次第だね


  • 精度が重要 → double
  • メモリや処理負荷を抑えたい → float

環境によっては計算性能にも影響するため、状況に応じた使い分けが必要です。


文字型(char)

char は「文字を扱う型」として使われます。

C
char c = 'A';

ただし、内部的には文字そのものではなく、**文字コード(数値)**を扱っています。

C
char c = 65; // 'A'

初心者さん

じゃあ、charって数値でも使えるんですか?

エンジニアくん

そう。1バイトの整数として使えるのが本質だね


そのため、組み込み開発では通信データやバッファとして使われることも多い型です。

char型についてはこちらの記事で解説しています。


型選びの考え方

ここまで見てきたように、型は「なんとなく」で選ぶものではありません。


エンジニアくん

結局、型選びはこれに尽きる👇


👉 「必要なものに合わせて選ぶ」


  • どの範囲の値を扱うか
  • どの程度の精度が必要か
  • メモリに制約があるか
  • どんな用途か(計算・通信・状態管理など)

この視点で考えると、自然に適切な型が選べるようになります。


組み込み開発でのポイント

組み込み開発では、さらに次の点も重要になります。

  • メモリ制約 → 小さい型を選ぶ
  • 通信仕様 → サイズを合わせる
  • 処理性能 → 型によって影響する

そのため、次のような固定幅の型が使われることもあります。

C
#include <stdint.h>

uint8_t buf;
int16_t value;

初心者さん

じゃあ常にこれを使うんですか?

エンジニアくん

いや、そこはケースバイケース


コンパイラやターゲット環境を理解していれば、
通常の int や char を使っても問題ない場面も多くあります。

👉 重要なのは「目的に応じて使い分けること」


ポインタ(*)とは

C言語では、変数の「アドレス(メモリ上の位置)」を扱うためにポインタを使います。

C
int a = 10;
int *p = &a;

初心者さん

この「*」って何なんですか?

エンジニアくん

「ポインタ型」を表す記号だね
アドレスを扱う変数ってこと


ポインタを使うことで、関数に値を渡すだけでなく、
元の変数を直接操作することができます。

👉 ポインタはC言語の中でも重要な概念なので、別記事でもシリーズで詳しく解説しています。

修飾子とは

C言語では、変数や関数の振る舞いを制御するために「修飾子(キーワード)」を使います。


代表的なもの:

  • static
  • const
  • volatile
  • extern

初心者さん

型とは違うんですか?

エンジニアくん

型に「意味を追加するもの」だね


例えば const を使うと👇

C
const int a = 10;

👉 値を書き換えられない変数になる


修飾子はメモリ配置や最適化にも関わる重要な要素です。

👉 それぞれの詳しい意味は個別記事で解説しています。

まとめ

  • 基本型は「整数・小数・文字」の3つに分かれる
  • 整数型には複数の種類があり、用途に応じて選ぶ
  • bool は状態(真偽)を分かりやすく表現するための型
  • float と double は精度とコストで使い分ける
  • char は文字だけでなく数値としても使われる
  • 型は目的に応じて選ぶことが重要

👉 詳しい仕様(最大値・ビット表現・使い分け)は、各解説記事で詳しく解説します

この記事が参考になった方へ

型を含むC言語の基本文法をこちらの記事で整理しています。

技術に関するご相談・開発・自動化ツール作成・記事執筆などのご依頼も承っています。

小さなご相談からでもお気軽にご連絡ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする


目次