プログラミング · 1 min read · Sep 22, 2025
C/C++を段階的に学ぶ
C/C++を段階的に学ぶ
01. 段階的C/C++ — はじめに
多くの人々が、DOS/WindowsやLinuxなどの好きなプラットフォームでC/C++プログラムを学び、実装することに非常に興味を持っています。もしあなたが始めるための段階的なガイドを探しているのであれば、このチュートリアルはあなたのためのものです。私の小さな試みについてのコメントをお知らせください。
目次
I. Cについて
- Cとは?
- C言語の発展
- Cの汎用性
- Cの歴史
- Cの特徴
II. プログラミングの基本
- プログラムの構成要素
- 定数
- データ型
- 数値データ型
- 非数値データ型
- 整数データ型
- 実数データ型
- 論理データ型
- 列挙データ型
言語と式の紹介
Cとは?
Cはコンパイラベースのプログラミング言語で、高水準および低水準の文をサポートし、ハードウェアと直接対話します。
C言語の発展
Cプログラミング言語は、1970年代初頭にベル研究所で開発された一連のプログラミング言語から進化しました。このプログラミング言語が広く普及し、サポートを得るようになったのは1970年代後半のことでした。それまでの間、Cコンパイラはベル研究所の外で商業利用のために容易に入手できませんでした。
C言語は、コンピュータの入出力デバイスを管理し、ストレージを割り当て、他のプログラムの実行をスケジュールするための適切な高水準言語を発明するプロジェクトにおけるデニス・リッチーの作業の成果です。
UNIXオペレーティングシステムはC言語で書かれています。したがって、UnixオペレーティングシステムはCを標準プログラミング言語としています。実際、オペレーティングシステム自体の90%以上はC言語で書かれています。したがって、C言語は元々Unixオペレーティングシステム上で設計され、実装されました。
Cの汎用性
Cは高水準、手続き型/構造型、汎用プログラミング言語であり、Fortran、Pascal、PL/1などの他の高水準言語に似ています。しかし、C言語を「純粋な高水準言語」と呼ぶことはできません。
Cは、特定の活動を行うための高水準言語と、機械のアセンブリ言語のような低水準言語の間に位置しています。”システム独立性”、”制限されたデータ型”、”高い柔軟性”などの特徴から、強力な言語と見なされています。Cはシステム間の移植性のために人気を博しました。
Cの歴史
| 年 | 言語 | 開発者 | 備考 |
| 1960 | ALGOL | 国際委員会 | あまりにも一般的、あまりにも抽象的 |
| 1963 | CPL | ケンブリッジ大学 | 学ぶのが難しく、実装が困難 |
| 1967 | BCPL | マーチン・リチャーズ | 特定の問題にしか対処できない |
| 1970 | B | ケン・トンプソン AT&T ベル研究所 | 特定の問題にしか対処できない |
| 1972 | C | デニス・リッチー AT&T ベル研究所 | BCPLとBの一般性を失ったが復元された |
| 80年代初頭 | C++ | ビャーネ・ストロヴストルップ AT&T | CにOOPを導入。 |
Cの特徴
- シンプルで多用途な汎用言語
- プログラムは高速で効率的
- 豊富な演算子のセットを持つ
- より一般的で制限がない
- ビット、バイト、アドレスを簡単に操作できる
- 様々なデータ型が利用可能
- 関数の別々のコンパイルが可能で、そのような関数は任意のCプログラムから呼び出すことができる
- ブロック構造型言語
- オペレーティングシステム、コンパイラ&インタプリタ、アセンブラなどのシステムプログラミング分野に適用可能
II. プログラミングの基本
プログラムの構成要素
- 定数
- 変数
- 演算子
- 文
したがって、真剣なプログラミングを書く前に、上記のプログラムのすべての構成要素を明確に理解しておく必要があります。上記の例によれば、すべてのプログラムは文の集合であり、文はコンピュータへの指示であり、定数、変数、演算子、文のコレクションです。
定数
定数は、プログラムの実行中に変更されることのない固定値です。
定数は大きく2つのカテゴリに分けられます:
- プライマリ定数
- セカンダリ定数
データ型
プログラミング言語で使用される変数が保持できるデータの種類は、データ型として知られています。
基本データ型は以下の通りです:
- 数値データ型
- 非数値データ型
- 整数データ型
- 実数データ型
- 論理データ型
- 列挙データ型
1. 数値データ型: 完全に数字を扱います。これらの数字は整数(int)データ型または実数(float)データ型のいずれかです。
2. 非数値データ型: 完全に文字を扱います。引用符で囲まれた任意の文字または文字のグループは、非数値または文字データ型と見なされます。
3. 整数データ型: 整数または整数を扱います。すべての算術演算はこのデータ型を通じて達成でき、結果も再び整数です。
4. 実数データ型: 実数または分数を含む数値データを扱います。すべての算術演算はこのデータ型を通じて達成でき、結果は実数データ型になることがあります。
5. 論理またはブールデータ型: 一度にTRUEまたはFALSEのいずれかの2つの値のみを保持できます。コンピュータでは、TRUEには1(1)が、FALSEには0(0)が保存されます。
6. 列挙データ型: 新しい型を導くためにグループ化された非構造化データを含みます。このデータ型は標準ではなく、通常はユーザーによって定義されます。
例:
Week_days = { “sun”, “mon”, “tue”, “wed”, “thu”, “fri”, “sat” };
Directions = {“North”, “East”, “West”, “South” };
以下の表は、標準データ型とその特性を示しています。
| キーワード | 範囲:低 | 範囲:高 | 精度の桁数 | メモリのバイト数 | フォーマット-ID |
| vhar | -128 | 127 | n/a | 1 | %c |
| int | -32, 768 | 32, 767 | N/a | 2(16ビットプロセッサ上)
| %d** | | long | -2,147, 483, 648 | 2, 147, 483, 647 | N/a | 4 | %ld | | float | 3.4 x 10-38 | 3.4 x 1038 | 7 | 4 | %f | | double | 1.7 x 10-308 | 1.7 x 10308 | 15 | 8 | %lf | | long double | 3.4 x 10-4932 | 3.4 x 10-4932 | 19 | 10 | %Lf |
注意: 符号付きおよび符号なしの int の必要な範囲は、符号付きおよび符号なしのshortの範囲と同じです。8ビットおよび16ビットプロセッサ用のコンパイラ(MS-DOSの下での16ビットモードで実行されるIntel x86プロセッサを含む)では、intは通常16ビットで、shortとまったく同じ表現を持ちます。32ビットおよびそれ以上のプロセッサ用のコンパイラ(Win32またはLinuxのように32ビットモードで実行されるIntel x86プロセッサを含む)では、intは通常32ビットで、longとまったく同じ表現を持ちます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。