ひぐぺん工房トップへ おかげさまで28周年!

ひぐぺん工房(松浦健一郎・司ゆき) - HigPen Works
Follow @higpenworks
・今までの仕事 ・書籍 ・最近の業務 ・対応可能言語 ・お見積

C言語[完全]入門

松浦 健一郎/司 ゆき 著
A5判、カラー、688ページ
価格 2,700円+税、出版日 2022/06/21、ISBN 978-4-8156-1168-2
対応環境 Windows/macOS/Linux
出版社 SBクリエイティブ
ダウンロードファイル

表紙イメージ 表紙イメージ

書誌情報  はじめに  目次  Q&A 


はじめに

本書はプログラミング言語のC(シー)について詳しく解説した入門書です。C言語に関する広く深い知識を、じっくりと確実に身につけたい方に向いています。初めてC言語を学ぶ方はもちろん、一度C言語を学んだ方が理解を深めるためにもお使いいただけます。他の言語に慣れていて、次はC言語を習得しようという方にもおすすめです。

本書では極力易しく、詳しく、端折らずに説明を行いました。かなりの分量がありますが、意外に速く読み進められると思います。無理なく読めるところまで進んで、続きは必要になったときに読んでも構いません。気になる章だけを拾い読みすることも可能ですが、前の章で学んだ知識を後の章で活用するので、最初の章から読むのがおすすめです。もし本書を読み進む中で分からないことが出てきたら、焦らずに前の章に戻ってみてください。

本書でC言語を学ぶときには、覚えることよりも、理解することを重視してください。根幹となる仕組みを理解していれば、もし記法を忘れてしまっても、もう一度本書を読んだり、自分が書いたプログラムを見返せば、すぐに思い出せます。苦労して暗記する必要はありません。忘れることは気にせずに、理解することに注力してください。

本書の特長

プログラミングにおける上達の早道は、色々なライブラリを揃えることや、既存のプログラムを切り貼りすることではなく、言語の基本機能をよく理解して使いこなすことです。そこで本書では、基本的な文法について分かりやすく、詳しく解説しました。すぐに使える書き方のパターンを紹介しつつ、内部の仕組みにまで踏み込んで説明しています。これによって、記法を覚えるだけではなく、自信を持ってプログラムが書けるようになることを狙いました。

本書に掲載している多数のプログラム例は、演習問題としても活用できます。プログラム例に先立って、必要な文法やライブラリについて紹介し、これからどんなプログラムを書くのかを提示しました。提示された情報を使ってプログラムを書いてから、解答例としてプログラム例を確認することで、プログラミングの演習をしながら本書を読み進められます。一方で、最初はプログラム例を確認するだけにして、実力を試したくなったときに演習問題として使うのもおすすめです。

C言語の特長は、コンピュータのハードウェアに密着した処理ができることと、高速に動作するプログラムが作れることです。一方でC言語は、C++(シープラスプラス)やObjective-C(オブジェクティブ・シー)といった他のプログラミング言語の基盤になっていることも特長です。Cを学んだら、次はC++を学びたいという方も多いでしょう。そこで本書では、CからC++に進むためのヒントを随所に記載しています。

Cプログラミングにおいては、プログラムを「こう書くべき」「こう書かないべき」という議論がよく発生します。色々な説があって迷いますが、本書ではおすすめの書き方の一例を紹介します。メジャーな説については、その説の起源・理由・利点・欠点なども述べます。

本書の構成

本書は基礎編応用編実践編から構成されています。基礎編と応用編では、Cの文法ライブラリについて詳細に解説します。Cの言語仕様については、本書の執筆時点における最新の仕様(C17)に対応し、次世代の仕様(C23)にも言及しています。昔のC言語には無かった機能も数多く紹介するので、以前にC言語を学んだ方にも、新しく有用な知識を手に入れていただけるでしょう。

実践編では、基礎編と応用編で学んだ知識を活用して、実用的なプログラムを開発するための手法を解説します。C言語らしいプログラミングが味わえる題材として、仕事に役立つツールゼロから作るAI(人工知能)インタラクティブなプログラムを取り上げます。この実践編は各章が独立しているので、気になる章から読んでいただけます。

本書に掲載したプログラムは、Windows/macOS/Linuxのいずれにも対応しています。開発環境には、広く使われているGCC(Windows/Linux)とClang(macOS)を選びました。本書のプログラムはGCC/Clangで動作を確認しましたが、本書で学ぶ知識はCの言語仕様に基づいているので、他の開発環境を使う際にも活用していただけます。

かなり読み応えがあるボリュームと内容に仕上がった本書ですが、カラーの紙面を活かして、できるだけ軽快に読み進められるように工夫しました。カラフルな図解を豊富に使って、C言語の仕組みを分かりやすく解説しています。本文については、用語・記法・演習問題・コメント・入力方法などを色分けしてあるので、関心があるポイントに注目して読むのもおすすめです。言語のキーワードやライブラリの関数名などについては、発音の例をカタカナで示しました。実際に発音することを通じて、記憶や理解が進むことや、他の技術者との間でコミュニケーションがスムーズになることを狙っています。

仕事・学業・趣味などでC言語をお使いの方が、本書を通じてC言語の知識や技術を磨き、目標を達成されることを心から願っています。本書を通じて、どんな課題をクリアできたか、C言語をどんなふうに使いこなせるようになったかといったことを、書籍レビューなどを通じてお知らせいただけたら、とても嬉しいです。

書誌情報  はじめに  目次  Q&A 


目次

基礎編

Chapter1 C言語を学ぶための準備
1-1 そもそもプログラミングとは何か
1-2 C言語の特長を理解する
1-3 開発環境を導入する

Chapter2 Cプログラミングを始めよう
2-1 最初のCプログラムを実行する
2-2 Cプログラムの基本形を読み解く
2-3 最初のプログラムを改造してみよう
2-4 エラーや警告が出たときの対処方法

Chapter3 まずは書いた値をそのまま出力しよう
3-1 整数を書いてみよう
3-2 浮動小数点数を書いてみよう
3-3 printf関数を使いこなそう

Chapter4 Cプログラミングの醍醐味は式の計算
4-1 式を計算して結果を出力する
4-2 2進数を操作するビット演算子とシフト演算子
4-3 環境によるプログラムの動作の違いに注意する

Chapter5 後で必要な値は変数に格納しておく
5-1 変数は宣言してから使う
5-2 整数型と浮動小数点型には多くの種類がある
5-3 変数の値を変更する
5-4 キーボードから値を入力する
5-5 値を変更できない定数を宣言する

Chapter6 選択文でプログラムの流れを変える
6-1 演算子を使って条件を書く
6-2 条件に応じて分岐するif文
6-3 条件演算子で分岐を簡潔に書く
6-4 値に応じて分岐するswitch文

Chapter7 繰り返し文で処理を反復する
7-1 インクリメントとデクリメントで+1と-1を簡潔に書く
7-2 for文で大部分の繰り返しは書ける
7-3 while文は条件式だけの繰り返しに向く
7-4 繰り返し文の流れを変えるbreak文・continue文・goto文
7-5 カンマ演算子で複数の式をまとめて書く

Chapter8 配列を使って多数の値を管理する
8-1 配列は複数の要素から構成されている
8-2 配列を初期化して宣言と同時に値を格納する
8-3 配列のコピーは要素ごとに行う
8-4 多次元配列で表や行列などを表現する
8-5 実行時に要素数を決める可変長配列

Chapter9 文字と文字列を操作する
9-1 文字の正体は文字コード
9-2 文字列の正体は文字の配列
9-3 文字列を操作する

応用編

Chapter10 何度も使う処理は関数にまとめる
10-1 独自の関数を定義して呼び出す
10-2 関数に配列を渡す
10-3 関数に文字列を渡す
10-4 変数は宣言の方法で有効範囲と生存期間が変わる

Chapter11 関数をさらに使いこなす
11-1 だんだん問題を小さくして解く再帰呼び出し
11-2 可変長引数を使って任意個の引数を受け取る
11-3 関数の呼び出しを効率化するインライン関数と関数マクロ
11-4 総称選択を使って呼び出す関数を切り替える

Chapter12 構造体で関連する値を一括して扱う
12-1 独自の構造体を定義して利用する
12-2 構造体を関数と組み合わせる
12-3 構造体を配列にする
12-4 メンバの配置を左右するパディングとアライメント
12-5 同じメモリを複数の型で操作できる共用体
12-6 ビット単位で値を詰め込めるビットフィールド

Chapter13 ポインタはアドレスを使って対象を指し示す
13-1 ポインタを宣言してアドレスを格納する
13-2 ポインタを使って配列を操作する
13-3 ポインタを使って文字列を操作する
13-4 ポインタを使って構造体を操作する

Chapter14 ポインタでメモリを自在に操作する
14-1 コマンドライン引数でプログラムの実行時に値を渡す
14-2 ポインタを指すポインタ
14-3 動的メモリ確保で取得するメモリのサイズを実行時に決める
14-4 動的に確保したメモリのサイズを変える
14-5 関数ポインタで柔軟な処理を実現する

Chapter15 ファイルを読み書きする
15-1 テキストファイルの入出力
15-2 文字単位のファイル入出力
15-3 バイナリファイルの入出力
15-4 書式付きのファイル入出力

Chapter16 プログラムを分割する
16-1 別のソースファイルで定義した関数を呼び出す
16-2 複数のソースファイルで変数を共有する
16-3 ソースファイルの内部だけで使う関数や変数を作成する

実践編

Chapter17 仕事の自動化に役立つプログラムを作る
17-1 プログラムを設計する
17-2 ファイルの一覧を出力する
17-3 拡張子ごとに集計する
17-4 結果をソートする

Chapter18 ゼロからのプログラミングでAIの仕組みを学ぶ
18-1 プログラムを設計する
18-2 入力データのCSVファイルを読み込む
18-3 k-meansでクラスタリングする
18-4 SVGとHTMLで可視化する

Chapter19 インタラクティブなプログラムを作る
19-1 プログラムを設計する
19-2 迷路を作る
19-3 迷路を解く
19-4 迷路を歩く

書誌情報  はじめに  目次  Q&A 


最終更新 2024/02/14
トップページへ
©ひぐぺん工房 禁無断転載
最新刊『Java[完全]入門』 
このサイトはリンクフリーです。
このサイトはChromeで動作検証しています。ブラウザにかかわらず表示に乱れがありましたらどうぞお知らせ下さい。メールを送る