1. データ型 (Data Types)
C言語では、変数を定義する際に使用する基本的なデータ型があります。
-
整数型 (Integer Types): 整数を扱います。
-
int
: 整数型(通常、32ビット) -
short
: より小さい整数型(通常、16ビット) -
long
: より大きい整数型(通常、64ビット) -
long long
: より大きな整数型(通常、64ビット)
-
-
浮動小数点型 (Floating Point Types): 小数を扱います。
-
float
: 単精度浮動小数点型(通常、32ビット) -
double
: 倍精度浮動小数点型(通常、64ビット) -
long double
: 高精度浮動小数点型(プラットフォーム依存)
-
-
文字型 (Character Type):
-
char
: 1文字を格納する型(通常、1バイト)
-
-
論理型 (Boolean Type):
-
bool
(C99以降):true
またはfalse
の真偽値(<stdbool.h>
をインクルード)
-
2. 定数 (Constants)
-
定数リテラル: 文字列や数値などの定数。
-
10
: 整数リテラル -
3.14
: 浮動小数点リテラル -
'A'
: 文字リテラル
-
-
定数定義 (
#define
): マクロ定義を行うためのもの。#define PI 3.14
3. 変数の宣言と初期化
C言語で変数を宣言し、値を格納する基本的な方法です。
int x; // 整数型変数 x の宣言
x = 10; // 変数 x に 10 を代入
int y = 20; // 宣言と同時に初期化
4. 演算子 (Operators)
C言語では、さまざまな演算子を使って計算や比較を行います。
-
算術演算子:
-
+
(足し算) -
-
(引き算) -
*
(掛け算) -
/
(割り算) -
%
(余り)
-
-
代入演算子:
-
=
(代入) -
+=
,-=
,*=
,/=
,%=
(複合代入)
-
-
比較演算子:
-
==
(等しい) -
!=
(等しくない) -
<
,>
,<=
,>=
(大小比較)
-
-
論理演算子:
-
&&
(論理積 AND) -
||
(論理和 OR) -
!
(論理否定 NOT)
-
-
ビット演算子:
-
&
(ビットAND) -
|
(ビットOR) -
^
(ビットXOR) -
~
(ビットNOT) -
<<
(左シフト) -
>>
(右シフト)
-
-
インクリメント・デクリメント:
-
++
(1増加) -
--
(1減少)
-
5. 制御構造 (Control Structures)
C言語では、プログラムの流れを制御するための構造があります。
-
if文: 条件に基づいて処理を分岐させる。
if (x > 10) { printf("xは10より大きいです"); } else { printf("xは10以下です"); }
-
switch文: 複数の選択肢の中から条件に一致するものを実行する。
switch (x) { case 1: printf("xは1です"); break; case 2: printf("xは2です"); break; default: printf("xは1でも2でもありません"); }
-
for文: 反復処理を行う。
for (int i = 0; i < 10; i++) { printf("%d\n", i); }
-
while文: 条件が真の間繰り返す。
while (x > 0) { printf("xは正の値です\n"); x--; }
-
do-while文: 少なくとも1回は実行するループ。
do { printf("xは少なくとも1回実行されます\n"); } while (x > 0);
6. 関数 (Functions)
C言語では、関数を使ってプログラムを分割して管理します。
-
関数の定義:
int add(int a, int b) { return a + b; }
-
関数の呼び出し:
int result = add(5, 3); // add関数を呼び出す
-
main関数: Cプログラムのエントリーポイント
int main() { printf("Hello, World!\n"); return 0; }
7. ポインタ (Pointers)
C言語のポインタは、メモリ上のアドレスを格納する変数です。ポインタを使うことで、効率的にメモリを操作できます。
-
ポインタの宣言:
int x = 10; int *p = &x; // xのアドレスをポインタpに格納
-
ポインタの間接参照:
printf("%d\n", *p); // ポインタpが指す先の値を表示
-
ポインタと配列: 配列はポインタと密接に関連しています。
int arr[5] = {1, 2, 3, 4, 5}; int *ptr = arr; printf("%d\n", *(ptr + 2)); // 配列の3番目の要素(3)を表示
8. 構造体 (Structures)
構造体は、異なる型のデータをひとつにまとめて管理するために使います。
-
構造体の定義:
struct Person { char name[50]; int age; };
-
構造体変数の宣言と初期化:
struct Person p1 = {"太郎", 25};
-
構造体メンバーへのアクセス:
printf("%sさんの年齢は%d歳です\n", p1.name, p1.age);
9. メモリ管理 (Memory Management)
動的メモリの確保と解放を行うための関数です。
-
malloc
: メモリ領域を動的に確保するint *ptr = (int *)malloc(sizeof(int) * 5); // 5個分のint型メモリを確保
-
free
: 確保したメモリを解放するfree(ptr); // メモリ解放
10. ヘッダファイル (Header Files)
C言語には、多くの標準ライブラリがあり、必要に応じてインクルードします。
-
標準ライブラリのインクルード:
#include <stdio.h> // 入出力関連 #include <stdlib.h> // 標準ライブラリ #include <string.h> // 文字列操作
これで、C言語の基本的な要素についての解説を網羅しました。