本書は、「真に実践的なコーディングを行うための“コーディングの手本”」を数多く提示するとともに、C言語において最も判りにくい部分と言われている「ポインタ」の使い方を、全体を通して指南した画期的なCプログラミングのTIPS集です。コーディング上の様々な悩みや疑問に対して解決策を具体的に提示してあります。その時々のニーズに応じてピンポイントで必要トピックを探せる紙面デザインを施してあり、とっても読みやすく使いやすく作ってあります。
第1章 さあ、いよいよ自分のコードを書いてみよう!
Cプログラムの拡張子は?
main()関数とは?
EOFって何?~壊れた関数ブロック
つぶれたケーキは食べられない!~字下げ
道路工事するなら標識を立てよう!~コメント
よくあるコメントの間違い~コメントの入れ子
むだな苦労はやめよう~発見しにくい全角の空白文字
しまりのない文の記述をやめよう
関数を使うならライブラリヘッダーをインクルードしよう
includeの<>と''''はどう違うの?
正しいコマンドライン引数を取得しよう
正しい方法でプログラムを終了しよう
printf()関数を使いこなそう
第2章 型とキーワードと変数の取り扱いに慣れる
型やキーワードはすべて小文字で書こう
変数名の規則は?
変数は必ず初期化しよう
変数の宣言や初期化文を整理しよう
Cプログラムで数値を記述するには?
char型の配列を正しく初期化するには
char型の配列を長い文字列で初期化するには
変数が隠れてしまった!
変数が使えないのはなぜ?
文字と文字列を正しく使い分けよう
第3章 演算子と条件処理に慣れる
条件が評価される順番を考える
プログラムがおかしくなったのはなぜ?
変数をインクリメントできないのはなぜ?
左辺値となれない式ってあるの?
むだのないif文を書こう
不明瞭なifとelseの対応に気をつけよう
おかしい?if-else文が機能しない~条件記述
なぜいつも同じ数値になるのだろう?=と==
冗長なif-else文 1~switch文が使える
冗長なif-else文 2~条件演算子が使える
switch/caseのポイント 1~整数定数
switch/caseのポイント 2~break文
第4章 ループの制御に慣れる
プログラムに定数を埋め込むのはやめよう!~#define
なぜ1から始めてはいけないの?
ループでは絶対に防ごう~境界越え
どうしよう、ループが止まらない~終了条件の不備
ループが変だ!~制御変数の初期化忘れ
無限ループを活用しよう~ループの脱出
あてにならない遅延ルーチン
whileループのよくある間違い~制御変数の更新忘れ
うまく抜けられないループ~入れ子のループ
goto文を使うのはやめよう~構造化プログラミングになじまない
第5章 配列と文字と文字列の取り扱いに慣れる(ポインタ:その1)
文字列の長さを求めるポイント~ヌル文字
ポインタ操作のポイント 1~ポインタの初期化
ポインタ操作のポイント 2~ポインタ参照先の初期化
文字列を連結するポイント 1~ヌル文字
文字列を連結するポイント 2~十分なサイズ
文字列を連結するポイント 3~strncat()関数
文字列をコピーするポイント 1~ヌル文字
文字列をコピーするポイント 2~strncpy()関数
文字列を比較するポイント~ヌル文字
おかしい、半角カナが取り扱えない~char型の問題
漢字を使えない標準関数ってあるの?
おかしい、入出力をリダイレクトできない
多次元配列のよくある間違い~不明瞭な初期化
ポインタ操作のポイント 3~値とアドレスの違い
ポインタ操作のポイント 4~文字列のソート
第6書 整数と浮動小数点数とビットの取り扱いに慣れる(ポインタ:その2)
printf()関数がおかしい!~演算子の右結合
ポインタ操作のポイント 5~アドレスの取り扱い
異なるデータ型間の代入には気をつけよう~データの喪失
明示的な型キャストには気をつけよう~警告がなくなる
加減乗除演算子の優先順位に注意しよう
科学的表記法を使うには?
ビット演算子を使ったら整数の符号が変わってしまった
ビットの取り扱いに強くなろう
Cの整数型とコンピュータの数値のしくみを理解しよう
16ビット環境と32ビット環境のint型にうまく対応したい~移植性の問題
第7章 関数の取り扱いに慣れる(ポインタ:その3)
関数定義のポイント 1~変数の寿命を理解しよう
関数定義のポイント 2~型を指定しよう
関数定義のポイント 3~プロトタイプを宣言しよう
関数定義のポイント 4~外部宣言を使おう
関数定義のポイント 5~引数と戻り値の値渡し
関数定義のポイント 6~引数と戻り値の参照(ポインタ)渡し
ポインタ操作のポイント 6~実体のない戻り値ポインタ
変だ!再帰関数を正しく終了できない~再帰関数の折り返し
累乗値を求める関数の計算がおかしい~再帰関数の初期化
関数定義のポイント 7~共通ルーチンの取り扱い
第8章 構造体の取り扱いに慣れる(ポインタ:その4)
構造体を上手に使おう
構造体変数をうまく宣言しよう
構造体名は型として使えないの?
ポインタ操作のポイント 7~char型の配列とchar *型の変数
ポインタ操作のポイント 8~なぜ途中からアロー演算子が使えなくなるの?
構造体のビットフィールドを活用しよう
不完全なビットテスタ~列挙の名前付き定数を使う
第9章 動的なメモリ割り当てに慣れる(ポインタ:その5)
ポインタ操作のポイント 9~NULLポインタの取り扱い 1
ポインタ操作のポイント 10~void *型のポインタの型キャスト
ポインタ操作のポイント 11~ポインタのコンパスの違いを理解する
ポインタ操作のポイント 12~void *型のポインタの上手な使い方
ポインタ操作のポイント 13~ポインタ参照先の初期化 2
メモリ領域をコピーするには?
ポインタ操作のポイント 14~NULLポインタの取り扱い 2
ポインタ操作のポイント 15~関数ポインタ
動的なリンクリストを作るには?
第10章 ファイルの取り扱いに慣れる(ポインタ:その6)
ポインタ操作のポイント 16~NULLポインタの取り扱い 3
環境に依存しない関数を使うのはやめよう~ファイルサイズ
fgets()関数の動作がおかしいのは?
なぜコピーしたファイルのサイズが違う?~サイズ指定
変だ!最終行がうまく表示できない~よくある問題
ポインタ操作のポイント 17~ポインタを永久保存してはいけない
可変長レコードをランダムアクセスするには?
付属データはこちら
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
刷数は奥付(書籍の最終ページ)に記載されています。
書籍の種類:
書籍の刷数:
本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
対象の書籍は正誤表がありません。
発生刷 | ページ数 | 書籍改訂刷 | 電子書籍訂正 | 内容 | 登録日 | ||||
---|---|---|---|---|---|---|---|---|---|
1刷 | 119 下から2行目 |
未 | 未 |
|
2006.03.31 | ||||
1刷 | 140 下から12行目 |
未 | 未 |
|
2004.11.06 | ||||
1刷 | 187 下から3行目 |
未 | 未 |
|
2004.11.01 | ||||
1刷 | 198 コラム:下から4行目 |
未 | 未 |
|
2004.04.23 | ||||
1刷 | 232 下から3~4行目 |
未 | 未 |
|
2005.08.22 | ||||
1刷 | 266 上から1行目 |
未 | 未 |
|
2004.11.06 | ||||
1刷 | 266 上から3行目 |
未 | 未 |
|
2004.11.06 | ||||
1刷 | 267 下から14行目 |
未 | 未 |
|
2004.11.06 | ||||
1刷 | 267 下から9行目 |
未 | 未 |
|
2004.11.06 | ||||
1刷 | 268 上から1行目 |
未 | 未 |
|
2004.11.06 |
とち さん
2011-11-28
BADなサンプルコードに対して、どこに問題があるのか、そしてどう修正すれば良いのかが丁寧に解説されていて分かりやすい。厚めの本ですがC言語で開発を行ったことがある人であれば、テンポ良くサクサクと読み進められると思います。久しくC言語に触れていなかったので良い復習になりました。
yasuhitoakita さん
2021-02-01
再読。