Lepton 著
Cは、Javaやスクリプト言語のように抽象化されたVMやインタープリタなどの上で動作するのが前提の言語と違い、ハードウェアを直接操作することも可能であり「Cを知ればCPUやメモリのことがわかる」「Cはアセンブラのかわりに使える」などとも言われます。このこと自体は間違いではないのですが、しかし、CにはJavaとは違ったCならではのハードウェアの抽 象化の考え方があり、そこが、Cがあまた存在するプログラミング言語のなかで特別な位置にあるとも言えるのではないかと思います。
本書の対象読者層としては、次のような方を想定しています。
●実務でJavaを使っているなど、Javaでプログラミング経験のあるプログラマ
●Cはまったくやったことが無いか、大学・専門学校等でかじった程度
●実務でCを使うことは今後ともあまり考えられないかもしれないが、趣味・一般教養として知的好奇心からCを知りたいと思ってる
●オープンソースソフトウェアなどでよくCが使われているので、それらのコードを読みたいと思ったことがある
本書は、ある程度のJavaの知識を前提としています。そして「Javaと比較して、Cはどこが違うのか(似ているのか)」という視点で、Cの文法その他を解説しています。もちろん2つの言語の比較だけではなく、最後までお読みいただければ、基本的なCのプログラミングができるようになっているはずです。
第1章 Cプログラミングの基本確認(1)
1.1 JavaとC
1.2 ソースの書き方
1.3 Cの歴史と規格
第1章のまとめ
第2章 Cプログラミングの基本確認(2)
2.1 型
2.2 定数
2.3 変数
2.4 演算子と式
2.5 条件分岐
2.6 ループ
第2章のまとめ
第3章 配列
3.1 配列の作り方
3.2 配列要素
3.3 配列のコピーと比較
3.4 配列の操作
3.5 二次元配列
第3章のまとめ
第4章 ポインタ
4.1 Javaの参照とCのポインタ
4.2 ポインタと配列
4.3 ポインタ型に許される演算
4.4 関数へのポインタ
第4章のまとめ
第5章 文字列
5.1 Cで文字列を扱うには?
5.2 文字列リテラル
5.3 string.h
5.4 argcとargv
第5章のまとめ
第6章 構造体
6.1 JavaのクラスとCの構造体
6.2 構造体の宣言と構造体型変数の定義
6.3 構造体の演算
6.4 構造体のポインタ
6.5 typedef
6.6 共用体
第6章のまとめ
第7章 プログラムの構造
7.1 関数の定義と宣言
7.2 ソースファイル
7.3 関数のスコープ
7.4 変数のスコープ
7.5 変数の寿命
7.6 関数の引数と戻り値
7.7 配列を引数とする場合
7.8 多次元配列を引数とする場合
7.9 構造体を引数とする場合
7.10 プリプロセッサ
第7章のまとめ
第8章 ライブラリ
8.1 Cのライブラリ
8.2 入出力<stdio.h>
8.3 文字列操作<string.h>
8.4 文字操作<ctype.h>
8.5 数学関数<math.h>
8.6 一般ユーティリティ<stdlib.h>
第8章のまとめ
Appendix
Appendix A Cの処理系
Appendix B 標準ライブラリ関数
Appendix C Cの情報
Appendix D echo.c
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
toiwata さん
2017-03-29
C言語の難易度を思い知る一冊。意味の取りづらい眼にやさしくない記法、言語仕様では決められていない処理系依存の実装、抽象化されていないメモリ。Zed A. Shaw先生のような技倆、修練を持たない凡百の身としては恐る恐るという表現が適切すぎる。