C 言語の変数、データ型、定数 – 実践ガイド
変数とは?
変数は値を保持する識別子です。定数とは異なり、プログラム実行中に値を変更できます。
変数はプログラムの複数箇所から参照可能。目的を表すわかりやすい名前を付けることで可読性が向上します。
int height = 170; // 身長 (cm) int age = 29; // 年齢
変数を使用する前に宣言が必要。変数名には英字、数字、アンダースコアを使用可能だが、先頭は英字またはアンダースコアでなければなりません。
変数命名規則
- 英字 (a-z、A-Z)、数字 (0-9)、アンダースコア (_) のみ使用可。
- 数字で始めてはならない。
- 空白を含んではならない。
- 予約キーワードを使用不可。
- C は大文字小文字を区別:
ageとAGEは別識別子。
有効/無効な名前の例
有効:
height _HEIGHT _height1 My_name
無効:
1height Hei$ght My name
変数の宣言と初期化
宣言してから代入:
int my_variable; my_variable = 48;
宣言と初期化を同時に:
int my_variable = 48;
データ型の概要
C には 3 つのデータ型カテゴリがあります:
- プリミティブ型 (int、char、float、double、void)
- 派生型 (配列、関数、ポインタ、構造体)
- ユーザー定義型 (typedef、構造体、列挙型、共用体)
プリミティブデータ型
5 つの基本型:
- int – 整数値
- char – 単一文字
- float – 単精度浮動小数点
- double – 倍精度浮動小数点
- void – 値なし (関数シグネチャで使用)
標準データ型のサイズと範囲
| データ型 | サイズ (バイト) | 範囲 |
|---|---|---|
| char / signed char | 1 | -128 ~ 127 |
| unsigned char | 1 | 0 ~ 255 |
| int / signed int | 2 | -32768 ~ 32767 |
| unsigned int | 2 | 0 ~ 65535 |
| short int / unsigned short int | 2 | 0 ~ 65535 |
| signed short int | 2 | -32768 ~ 32767 |
| long int / signed long int | 4 | -2147483648 ~ 2147483647 |
| unsigned long int | 4 | 0 ~ 4294967295 |
| float | 4 | ±3.4E-38 ~ ±3.4E+38 |
| double | 8 | ±1.7E-308 ~ ±1.7E+308 |
| long double | 10 | ±3.4E-4932 ~ ±1.1E+4932 |
注意: C には組み込みのブール型がない。int で 0 (偽) または 1 (真) を用いるか、stdbool.h ヘッダーで bool を使用。
整数データ型
整数は整数値。標準の 16 ビット int は -32768 ~ 32767。より短い/長いバリエーションで必要な範囲に対応。
典型的な宣言:
int age; short int smallCount; long int largeCount;
浮動小数点データ型
小数部を持つ値には float (約 6 桁精度)、double (約 14 桁精度)、long double (最高精度) を使用。
例:
float ratio = 0.75f; double balance = 12345.6789; long double pi = 3.141592653589793238462643383279502884L;
文字データ型
1 バイトで単一文字を格納。文字は一重引用符で指定。
例:
char letter = 'K';
void データ型
関数が値を返さないことを示す。
例:
void displayData(void) { // ... }
複数変数の同時宣言
同じ型の変数をカンマ区切りで 1 行に宣言可能:
int x, y, z; float salary = 13.48f; char letter = 'K';
出力例では書式指定子を使用:
printf("%d\n", z);
printf("%f\n", salary);
printf("%c\n", letter);
定数
プログラム実行中に変更されない値。C にはいくつかの形式がある:
整数定数
10 進、8 進 (0 プレフィックス)、16 進 (0x プレフィックス) リテラル。
例:
111 // 10進 012 // 8進 (10進の 10) 0x2BCD // 16進 (10進の 19293)
文字定数
一重引用符で囲まれた単一文字、または ASCII コード。
例:
'A' '9'
文字列定数
二重引用符で囲まれた文字列。
例:
"Hello" "Programming"
実数 (浮動小数点) 定数
小数点または科学的表記を持つ数値。
例:
202.15 300.00 1.23e-4 // 0.000123
const と #define による定数定義
const を使用するとストレージを確保し、不変性を強制:
#include <stdio.h>
int main(void) {
const double PI = 3.141592653589793;
printf("%f\n", PI);
return 0;
}
#define はプリプロセッサマクロで、ストレージを消費しない:
#include <stdio.h>
#define PI 3.141592653589793
int main(void) {
printf("%f\n", PI);
return 0;
}
まとめ
- 変数はデータを格納する変更可能な識別子。
- 定数はコンパイル時に固定される不変値。
- C のコア型:
int、float、char、void。 - 各型には定義されたサイズと範囲があり、メモリ制約環境では極めて重要。
C言語
- ネットワークプロトコルの理解:物理層から高度なアービトレーションまで
- マイクロプロセッサ:ストアドプログラムコンピューティングの進化
- C# 変数とプリミティブデータ型:完全マスターガイド
- C# 変数のスコープを理解する:クラス、メソッド、ブロックレベル
- C++変数・リテラル・定数完全ガイド:基礎から実践まで
- C++データ型完全ガイド:基本型、修飾子、ベストプラクティス
- C言語変数・定数・リテラル完全ガイド
- C言語データ型完全解説:int、float、charなど
- C言語ストレージクラス完全理解:スコープ・ライフタイム・パフォーマンス
- C言語のデータ型完全ガイド:整数、浮動小数点、void型
- Javaプリミティブデータ型:8種類を徹底解説