《C primer plus》01.初識C言語——ノート
文書ディレクトリ第一章初識C言語 1.1 C言語の起源 1.2 C言語を選んだ理由 1.3 C言語の応用範囲 1.4コンピュータは何をすることができます 1.5高度なコンピュータ言語とコンパイラ 1.6言語標準 1.7 C言語を使用する7つのステップ 1.8プログラミングメカニズム 1.9本書の組織構造 1.12復習問題 第一章C言語の初認識
1.1 C言語の起源
C言語の目的:最も有用なプログラミング言語になる
1.2 C言語を選んだ理由
C言語の設計理念はユーザーにトップダウンの計画、構造化プログラミングとモジュール化設計を簡単に完成させることができる.
C言語は、通常はアセンブリ言語であるための微調整制御能力(アセンブリ言語は特殊な中央処理ユニットのために設計された一連の内部命令であり、アシストを用いて表される;異なるCPUシリーズは異なるアセンブリ言語を用いる)を有し、具体的な状況に応じてプログラムを微調整して最大運転速度または最も効率的にメモリを使用することができる.
1つのシステムで作成されたCプログラムは、少し修正したり、変更したりしないで他のシステムで実行できます.変更する場合は、メインプログラムヘッダファイルのいくつかの項目を簡単に変更するだけです.
強力で柔軟なUNIXオペレーティングシステムで、大部分はC言語で書かれています.その他の言語(FORTRAN、Perl、Python、Pascal、LISP、Logo、BASICなど)の多くのコンパイラおよび解釈器はC言語で記述されている.したがって、UNIX機でFORTRANを使用する場合、最終的にはCプログラムによって最後の実行可能プログラムが生成される.
C言語には演算子が豊富で,プログラマーが自分の意図を簡潔に表現できる.C言語はPascalやC++ほど厳しくありません.このような柔軟性は利点であり欠点でもある.利点は、多くのタスクがCで処理されるのが非常に簡潔(例えば、データのフォーマットを変換する)であることです.欠点は、他の言語では起こり得ない奇妙なエラーを犯す可能性があります.
C言語の欠点:C言語で自由にプログラミングする楽しみを享受するには、より多くの責任を負わなければならない.特にC言語ではポインタが用いられるが,ポインタに関するプログラミングエラーは気づきにくいことが多い.
1.3 C言語の応用範囲
[外部チェーン画像の転送に失敗しました.ソース局には盗難防止チェーンがある可能性があります.画像を保存して直接アップロードすることをお勧めします(img-zl 48 sgUz-1593754863027)(0131.jpg)]
1.4コンピュータは何ができるか
ランダムアクセスメモリ(RAM)は、プログラムとファイルを格納するワークスペースであり、永久メモリ記憶装置(従来は機械的ハードディスクを指していたが、現在は固体ハードディスクも含まれている)は、コンピュータをオフにしても、以前に格納したプログラムとファイルを失うことはない.周辺機器(キーボード、マウス、タッチスクリーン、モニタなど)は、コンピュータとのインタラクションを提供します.中央処理ユニット(CPU)ほとんどの演算を担当する:1、CPUは処理プログラム2を担当し、メモリから1つの命令を取得して実行し、その後メモリから次の命令を取得して実行する.このような3、CPUはいくつかのレジスタから構成されている:各レジスタは1つの数字を記憶することができる;1つのレジスタは次の命令のメモリアドレスを記憶し、CPUはこのアドレスを使用して取得と次のコマンドを更新します.命令を取得すると、CPUは、他のレジスタにその命令を格納し、1番目のレジスタに次の命令を格納するアドレスを更新する.CPUが理解できる命令は限られている(これらの命令の集合を命令セットと呼ぶ).また、これらの命令はかなり具体的で、その多くはコンピュータに1つの数字を1つの位置から別の位置に移動するように要求するために使用される.
コンピュータの動作原理は、コンピュータに何かをしたい場合は、特殊な命令リスト(プログラム)を提供し、コンピュータがすべきこととどのようにするかを正確に教えなければならないということです.
1.5高度なコンピュータ言語とコンパイラ
コンパイラ:役割:高度な言語プログラムをコンピュータが理解できる機械言語命令セットに翻訳するプログラム.
1.6言語標準
C言語のいくつかの標準:ANSI/ISO C標準:1989年に正式に発表され、C 89またはC 90標準標準の精神点とも呼ばれています:●プログラマーを信頼します;[原句]プログラマーが必要なことをするのを邪魔しないでください.●言葉の洗練されたシンプルさを保つ.・1つの操作を実行する方法のみを提供する.・移植性が保証されなくても、プログラムの実行を高速化する.
C 99標準は1994年に発表された最初のC 90原則に従い、言語の精錬を維持する3つの目標を含む:1、国際化プログラミングをサポートする2、既存の実践を調整して明らかな欠陥の解決に力を入れる3、科学と工事プロジェクトにおける重要な数値計算に適応するために、Cの適応性を高め、CがFORTRANより競争力があるようにする.
C 11規格は2007年に発表された
1.7 C言語を使用する7つのステップ
理想的な状態では、プログラミングは7つのステップに分けられる:1、プログラムの目標を定義する2、設計プログラム3、コードを書く4、コンパイル5、プログラムを実行する6、テストとデバッガ7、プログラムのメンテナンスと修正
1、プログラムの目標を定義してプログラムが何をしたいのか、まず自分が何をしたいのかを明確にし、あなたのプログラムがどのような情報を必要としているのか、どのような計算と制御を行うのか、プログラムがどのような情報を報告すべきかを考えます.
2、設計プログラムはどのようにプログラムでそれを完成するかを考えます.プログラム(補助ファイルかもしれない)でデータをどのように表すか、どのような方法でデータを処理するかを決定します.
3、作成コード例コード1は以下の通りである.
4、コンパイル注意:コンパイルの詳細はプログラミング環境によって決まる
コンパイラの役割:コンパイラはソースコードを実行可能コードに変換するプログラムで、C言語プログラムが有効かどうかをチェックします.Cコンパイラがエラーを発見した場合、実行可能ファイルを生成してエラーを報告しません.
5、実行プログラムは、Windowsコマンドプロンプトモード、UNIX端末モード、Linux端末モードを含む一般的な環境で実行するプログラムは、実行可能ファイルのファイル名を入力し、その他の環境では、VAXのVMSなどのコマンドを実行するか、その他のメカニズムを実行することができます.
6、テストとデバッガはプログラムがあなたの設計した考え方に従って実行されているかどうかを検査します.プログラムにいくつかのエラーがあることに気づきます.コンピュータの行話はバグと呼ばれています.デバッグ:プログラムエラーを検索して修復するプロセス
7、プログラムのメンテナンスと修正プログラムが間違っていることを発見したり、プログラムの用途を拡張したい場合は、プログラムを修正します.
1.8プログラミングメカニズム
XXX.cファイルはソースファイルXXXを基本名とし、Cを拡張名とする
異なるシステムのファイル名に対する要求:MS-DOS:基本名は8文字部分UNIXを超えてはいけない:全体ファイル名は14文字部分UNIXを超えてはいけない:全体ファイル名は255文字までである
[外部リンク画像の転送に失敗しました.ソース局には盗難防止チェーンメカニズムがある可能性があります.画像を保存して直接アップロードすることをお勧めします(img-uxlKlkZ 2-15937554863031)(0181.jpg)]コンパイラとリンク
UNIXシステム上でCプログラムをコンパイルする過程:[外部チェーン画像の転送に失敗し、ソース局に盗難防止チェーン機構がある可能性があり、画像を保存して直接アップロードすることを提案する(img-rcUZ 3 NBE-15937554863034)(0182.jpg)]
GNUプロジェクト:1987年からGCCとも呼ばれています
LVMプロジェクト:2000年から
clangプロジェクト:2012年から
gccコマンドとclangコマンドは、異なるバージョンに基づいて実行時オプションを選択して、異なるC標準を呼び出すことができます.
参照リンク:http://www.gnu.org/software/gcc/index.html
1.9本書の組織構造
螺旋式の方法を採用して、まず前のいくつかの章の中でいくつかのテーマを紹介して、後の章で更に関連する内容を詳しく討論します.例えば、C言語を学ぶには、関数を理解することが重要です.そのため、私たちは前のいくつかの章の中でいくつかの関数に関連する内容を手配して、読者が9章を学んだ時、すでに関数に対して理解して、関数の使用を学ぶのはもっと簡単です.これと同様に、前の章では、文字列とループの内容についても概説しました.
1.12復習問題プログラミングにとって、移植性は何を意味しますか?完璧な移植可能なプログラムは、ソースコードを変更する必要がなく、異なるコンピュータシステムでコンパイルに成功するプログラムです. ソースファイル、ターゲットコードファイル、実行可能ファイルの違いを説明します.ソース・ファイルには、プログラマが使用する任意のプログラミング言語で作成されたコードが含まれます.ターゲット・コード・ファイルには、完全なプログラム・コードである必要のないマシン言語コードが含まれます.実行可能ファイルには、実行可能プログラムを構成する完全なマシン言語コードが含まれています. プログラミングの7つの主要なステップは何ですか?(1)プログラム目標の定義(2)設計プログラム(3)作成プログラム(4)コンパイラ(5)実行プログラム(6)テストとデバッガ(7)メンテナンスと修正プログラム コンパイラのタスクは何ですか?コンパイラは、ソースコード(例えば、C言語で記述されたコード)を等価なマシン言語コード(ターゲットコードとも呼ばれる)に翻訳する. リンクのタスクは何ですか?リンクは、コンパイラが翻訳したソースコードとライブラリコードと起動コードを組み合わせて、実行可能なプログラムを生成します.
1.1 C言語の起源
C言語の目的:最も有用なプログラミング言語になる
1.2 C言語を選んだ理由
C言語の設計理念はユーザーにトップダウンの計画、構造化プログラミングとモジュール化設計を簡単に完成させることができる.
C言語は、通常はアセンブリ言語であるための微調整制御能力(アセンブリ言語は特殊な中央処理ユニットのために設計された一連の内部命令であり、アシストを用いて表される;異なるCPUシリーズは異なるアセンブリ言語を用いる)を有し、具体的な状況に応じてプログラムを微調整して最大運転速度または最も効率的にメモリを使用することができる.
1つのシステムで作成されたCプログラムは、少し修正したり、変更したりしないで他のシステムで実行できます.変更する場合は、メインプログラムヘッダファイルのいくつかの項目を簡単に変更するだけです.
強力で柔軟なUNIXオペレーティングシステムで、大部分はC言語で書かれています.その他の言語(FORTRAN、Perl、Python、Pascal、LISP、Logo、BASICなど)の多くのコンパイラおよび解釈器はC言語で記述されている.したがって、UNIX機でFORTRANを使用する場合、最終的にはCプログラムによって最後の実行可能プログラムが生成される.
C言語には演算子が豊富で,プログラマーが自分の意図を簡潔に表現できる.C言語はPascalやC++ほど厳しくありません.このような柔軟性は利点であり欠点でもある.利点は、多くのタスクがCで処理されるのが非常に簡潔(例えば、データのフォーマットを変換する)であることです.欠点は、他の言語では起こり得ない奇妙なエラーを犯す可能性があります.
C言語の欠点:C言語で自由にプログラミングする楽しみを享受するには、より多くの責任を負わなければならない.特にC言語ではポインタが用いられるが,ポインタに関するプログラミングエラーは気づきにくいことが多い.
1.3 C言語の応用範囲
[外部チェーン画像の転送に失敗しました.ソース局には盗難防止チェーンがある可能性があります.画像を保存して直接アップロードすることをお勧めします(img-zl 48 sgUz-1593754863027)(0131.jpg)]
1.4コンピュータは何ができるか
ランダムアクセスメモリ(RAM)は、プログラムとファイルを格納するワークスペースであり、永久メモリ記憶装置(従来は機械的ハードディスクを指していたが、現在は固体ハードディスクも含まれている)は、コンピュータをオフにしても、以前に格納したプログラムとファイルを失うことはない.周辺機器(キーボード、マウス、タッチスクリーン、モニタなど)は、コンピュータとのインタラクションを提供します.中央処理ユニット(CPU)ほとんどの演算を担当する:1、CPUは処理プログラム2を担当し、メモリから1つの命令を取得して実行し、その後メモリから次の命令を取得して実行する.このような3、CPUはいくつかのレジスタから構成されている:各レジスタは1つの数字を記憶することができる;1つのレジスタは次の命令のメモリアドレスを記憶し、CPUはこのアドレスを使用して取得と次のコマンドを更新します.命令を取得すると、CPUは、他のレジスタにその命令を格納し、1番目のレジスタに次の命令を格納するアドレスを更新する.CPUが理解できる命令は限られている(これらの命令の集合を命令セットと呼ぶ).また、これらの命令はかなり具体的で、その多くはコンピュータに1つの数字を1つの位置から別の位置に移動するように要求するために使用される.
コンピュータの動作原理は、コンピュータに何かをしたい場合は、特殊な命令リスト(プログラム)を提供し、コンピュータがすべきこととどのようにするかを正確に教えなければならないということです.
1.5高度なコンピュータ言語とコンパイラ
コンパイラ:役割:高度な言語プログラムをコンピュータが理解できる機械言語命令セットに翻訳するプログラム.
1.6言語標準
C言語のいくつかの標準:ANSI/ISO C標準:1989年に正式に発表され、C 89またはC 90標準標準の精神点とも呼ばれています:●プログラマーを信頼します;[原句]プログラマーが必要なことをするのを邪魔しないでください.●言葉の洗練されたシンプルさを保つ.・1つの操作を実行する方法のみを提供する.・移植性が保証されなくても、プログラムの実行を高速化する.
C 99標準は1994年に発表された最初のC 90原則に従い、言語の精錬を維持する3つの目標を含む:1、国際化プログラミングをサポートする2、既存の実践を調整して明らかな欠陥の解決に力を入れる3、科学と工事プロジェクトにおける重要な数値計算に適応するために、Cの適応性を高め、CがFORTRANより競争力があるようにする.
C 11規格は2007年に発表された
1.7 C言語を使用する7つのステップ
理想的な状態では、プログラミングは7つのステップに分けられる:1、プログラムの目標を定義する2、設計プログラム3、コードを書く4、コンパイル5、プログラムを実行する6、テストとデバッガ7、プログラムのメンテナンスと修正
1、プログラムの目標を定義してプログラムが何をしたいのか、まず自分が何をしたいのかを明確にし、あなたのプログラムがどのような情報を必要としているのか、どのような計算と制御を行うのか、プログラムがどのような情報を報告すべきかを考えます.
2、設計プログラムはどのようにプログラムでそれを完成するかを考えます.プログラム(補助ファイルかもしれない)でデータをどのように表すか、どのような方法でデータを処理するかを決定します.
3、作成コード例コード1は以下の通りである.
#include
int main(void)
{
int dogs;
printf("lHow many dogs do you have?
");
scanf("%d",&dogs);
printf("so you have %d dog(s)!
",dogs);
return 0;
}
4、コンパイル注意:コンパイルの詳細はプログラミング環境によって決まる
コンパイラの役割:コンパイラはソースコードを実行可能コードに変換するプログラムで、C言語プログラムが有効かどうかをチェックします.Cコンパイラがエラーを発見した場合、実行可能ファイルを生成してエラーを報告しません.
5、実行プログラムは、Windowsコマンドプロンプトモード、UNIX端末モード、Linux端末モードを含む一般的な環境で実行するプログラムは、実行可能ファイルのファイル名を入力し、その他の環境では、VAXのVMSなどのコマンドを実行するか、その他のメカニズムを実行することができます.
6、テストとデバッガはプログラムがあなたの設計した考え方に従って実行されているかどうかを検査します.プログラムにいくつかのエラーがあることに気づきます.コンピュータの行話はバグと呼ばれています.デバッグ:プログラムエラーを検索して修復するプロセス
7、プログラムのメンテナンスと修正プログラムが間違っていることを発見したり、プログラムの用途を拡張したい場合は、プログラムを修正します.
1.8プログラミングメカニズム
XXX.cファイルはソースファイルXXXを基本名とし、Cを拡張名とする
異なるシステムのファイル名に対する要求:MS-DOS:基本名は8文字部分UNIXを超えてはいけない:全体ファイル名は14文字部分UNIXを超えてはいけない:全体ファイル名は255文字までである
#include
int main(void)
{
printf("Concrete contains gravel and cement.
");
return 0;
}
[外部リンク画像の転送に失敗しました.ソース局には盗難防止チェーンメカニズムがある可能性があります.画像を保存して直接アップロードすることをお勧めします(img-uxlKlkZ 2-15937554863031)(0181.jpg)]コンパイラとリンク
UNIXシステム上でCプログラムをコンパイルする過程:[外部チェーン画像の転送に失敗し、ソース局に盗難防止チェーン機構がある可能性があり、画像を保存して直接アップロードすることを提案する(img-rcUZ 3 NBE-15937554863034)(0182.jpg)]
GNUプロジェクト:1987年からGCCとも呼ばれています
LVMプロジェクト:2000年から
clangプロジェクト:2012年から
gccコマンドとclangコマンドは、異なるバージョンに基づいて実行時オプションを選択して、異なるC標準を呼び出すことができます.
参照リンク:http://www.gnu.org/software/gcc/index.html
1.9本書の組織構造
螺旋式の方法を採用して、まず前のいくつかの章の中でいくつかのテーマを紹介して、後の章で更に関連する内容を詳しく討論します.例えば、C言語を学ぶには、関数を理解することが重要です.そのため、私たちは前のいくつかの章の中でいくつかの関数に関連する内容を手配して、読者が9章を学んだ時、すでに関数に対して理解して、関数の使用を学ぶのはもっと簡単です.これと同様に、前の章では、文字列とループの内容についても概説しました.
1.12復習問題