関連サイト
本書の関連ページが用意されています。
内容紹介
1991年に発行以来、好評を頂いている『C言語によるプログラミング ―基礎編―』を第3版として大幅改訂。初めてC言語を学ぶ方のために、C言語の文法の修得を中心として、プログラミングに必要な基礎知識をさまざまな例題に基づいて解説します。
プログラミングを学習する際の数多くの疑問やトラブルを解消し、プログラミングテクニックも豊富に解説しています。本格的なシステムプログラミングへの足がかりを得ることができる内容です。
【第3版の改訂内容】
・1色刷りから2色刷りへの変更
・Cのバージョンや開発環境などをはじめとした、古くなった情報を一新
・サンプルコードの書き方を、より初学者にわかりやすい形に統一
・総合演習として11章を追加
※現在販売中のファイル形式はPDF版のみになりますが、後日EPUB版も追加予定です。それまでにPDF版をご購入された場合、EPUB販売開始後はEPUBもダウンロードいただけます。
書誌情報
- 著者: 内田 智史(監修), 株式会社システム計画研究所(編)
- 発行日: 2020-11-19 (紙書籍版発行日: 2020-11-19)
- 最終更新日: 2020-11-19
- バージョン: 1.0.0
- ページ数: 416ページ(PDF版換算)
- 対応フォーマット: PDF
- 出版社: オーム社
対象読者
C言語の初学者、情報系専門学校・大学、およびシステムエンジニア関連企業でのテキスト/自習書
著者について
内田 智史
昭和57年 青山学院大学理工学部経営工学科卒業
昭和59年 青山学院大学大学院修士課程修了、工学修士
平成19年 神奈川大学工学部情報システム創成学科准教授博士(工学、筑波大学)
●主な著書
『理工系のためのC 言語プログラミング入門』科学技術出版、『アセンブラ入門(CASL Ⅱ)』発行:電子開発学園出版局/発売:SCC、『C 言語によるプログラミング-応用編-』(監修)オーム社、『C 言語によるプログラミング-スーパーリファレンス編-』
目次
まえがき
第1章 プログラミングの基礎知識
- 1.1 はじめに
- 1.2 プログラミング言語としてのC
- 1.2.1 C の位置づけ
- 1.2.2 Cの簡単な歴史
- 1.3 コンピュータ入門
- 1.3.1 コンピュータの中身
- 1.3.2 コンピュータの構成
- 1.3.3 コンピュータの動作原理
- 1.4 コンピュータの起動からプログラムが実行できるまで
- 1.4.1 コンピュータ起動時に行われていること
- 1.4.2 OS の役割
- 1.5 プログラムの作成から実行まで
- 1.5.1 プログラミングの進め方
- 1.5.2 実行させてみよう
- 1.6 プログラムの動作環境
- 1.6.1 プログラムの入出力
- 1.6.2 端末ウィンドウ
- 1.7 プログラミングの学習
- 1.7.1 どうやって学習するのか
第2章 プログラミング入門
- 2.1 プログラムを書いてみよう
- 2.1.1 Hello Programming in C World! と表示する
- 2.1.2 プログラムをコンパイルしてみよう
- 2.1.3 プログラムの実行
- 2.2 計算をしてみよう
- 2.2.1 「変数」という箱
- 2.2.2 キーボードからの入力
- 2.2.3 四則演算
- 2.3 プログラムの流れを変える
- 2.3.1 条件分岐(if 文)
- 2.3.2 繰り返し(for 文)
- 2.4 まとめ
第3章 変数と式
- 3.1 変数と型
- 3.1.1 変数とはなにか
- 3.1.2 使用できる変数名
- 3.1.3 型の概念
- 3.1.4 文字の表現
- 3.1.5 定数
- 3.1.6 変数の定義と初期化
- 3.1.7 さまざまな変数定義
- 3.2 式と演算子
- 3.2.1 式は大切な概念
- 3.2.2 代入式
- 3.2.3 算術演算子
- 3.2.4 sizeof 演算子
- 3.2.5 演算子の優先順位
- 3.2.6 整数型と浮動小数点型の混合演算
第4章 制御の流れ
- 4.1 文と制御の流れ
- 4.1.1 複雑なプログラムを作るには
- 4.1.2 基本制御構造とフローチャート
- 4.1.3 本章で学べること
- 4.2 条件分岐処理
- 4.2.1 条件式
- 4.2.2 if 文
- 4.2.3 else 文
- 4.2.4 switch 文
- 4.2.5 多岐条件文
- 4.2.6 条件分岐の応用例
- 4.3 ループ(繰り返し)処理
- 4.3.1 for 文:順番に繰り返す
- 4.3.2 while 文:真のあいだ、繰り返す
- 4.3.3 do-while 文:真のあいだ、繰り返す
- 4.3.4 continue:ループ内の以降の文を実行せず、次のループへ
- 4.3.5 break
- 4.3.6 無限ループ
- 4.4 無条件分岐
- 4.4.1 goto 文
- 4.4.2 goto 文を用いた例
- 4.5 条件演算子
第5章 関数
- 5.1 関数
- 5.1.1 簡単な関数の定義
- 5.1.2 関数を含むプログラム構造
- 5.1.3 関数の呼び出し手順
- 5.1.4 ローカル変数
- 5.1.5 sqrt 関数を作ってみよう
- 5.2 関数宣言と引数
- 5.2.1 引数の記述形式と関数の型
- 5.2.2 引数の個数と型の一致
- 5.2.3 関数の名前の重複の禁止
- 5.3 いろいろな関数の例
- 5.3.1 関数の中から別の関数を呼び出す
- 5.3.2 void 型関数
- 5.3.3 void 型関数とほかの型をもつ関数の組み合わせ
- 5.4 さまざまな変数
- 5.4.1 自動変数
- 5.4.2 グローバル変数
- 5.4.3 static 変数
- 5.4.4 auto 変数
- 5.4.5 register 変数
- 5.4.6 自動変数の初期化と静的な変数の初期化
- 5.5 変数の通用範囲(スコープ)
- 5.5.1 自動的な変数の通用範囲
- 5.5.2 静的な変数の通用範囲
第6章 配列
- 6.1 配列の概念
- 6.1.1 配列の考え方
- 6.1.2 配列を用いる場面
- 6.2 配列の使い方
- 6.2.1 配列変数の定義
- 6.2.2 配列の添字
- 6.2.3 配列の値の参照と代入
- 6.3 配列を使ったプログラム
- 6.3.1 平均値・分散・標準偏差
- 6.3.2 並べ替え(sorting)
- 6.4 配列の要素数とマクロ定数
- 6.5 2 次元配列
- 6.5.1 行列計算
- 6.5.2 座標計算:仲の悪い2 人
- 6.6 配列の初期化
- 6.6.1 1 次元配列の初期化
- 6.6.2 2 次元配列の初期化
- 6.7 多次元配列
第7章 文字列
- 7.1 文字列の表現
- 7.1.1 文字
- 7.1.2 文字配列
- 7.1.3 配列、初期化
- 7.2 文字列の操作
- 7.2.1 文字列の長さ
- 7.2.2 文字列の比較
- 7.2.3 文字列のコピー
- 7.2.4 文字列の連結
- 7.3 日本語文字列の取扱
第8章 ポインタ
- 8.1 ポインタの基礎
- 8.1.1 アドレス
- 8.1.2 ポインタとは
- 8.1.3 アドレス演算子
- 8.1.4 ポインタ変数の定義
- 8.1.5 間接演算子
- 8.1.6 ポインタ変数の初期化
- 8.2 ポインタの応用
- 8.2.1 ポインタ演算
- 8.2.2 ポインタと配列
- 8.2.3 文字列とポインタ
- 8.2.4 ポインタの引数としての使い方
第9章 構造体とユーザ定義型
- 9.1 構造体(structure)
- 9.1.1 構造体の概念
- 9.1.2 構造体宣言
- 9.1.3 構造体メンバの操作
- 9.1.4 構造体の代入(コピー)
- 9.1.5 構造体のネスト
- 9.2 共用体(union)
- 9.3 構造体と共用体の初期化
- 9.3.1 構造体の初期化
- 9.3.2 共用体の初期化
- 9.4 構造体の活用
- 9.4.1 構造体の配列
- 9.4.2 構造体へのポインタ
- 9.4.3 構造体と関数
- 9.5 ユーザ定義型
- 9.5.1 typedef
- 9.5.2 列挙(enumeration)
- 9.5.3 宣言と定義
第10章 ファイル
- 10.1 ファイルの概念
- 10.2 ファイルからの入力
- 10.2.1 ファイルからの入力の例
- 10.2.2 ファイル名を指定した入力
- 10.2.3 入力データの終わりの判定
- 10.2.4 複数のファイルから入力するには
- 10.3 ファイルへの出力
- 10.3.1 ファイルへの出力の例
- 10.3.2 ファイルの追加出力
- 10.4 エラー発生時の対処
- 10.4.1 エラーを未然に防ぐ
- 10.4.2 エラーチェック
- 10.4.3 fscanf 関数の危険性
- 10.4.4 fclose 関数のチェック
- 10.4.5 例外処理で有効なgoto 文
- 10.5 ファイルと入出力
第11章 実用的なプログラムへの応用
- 11.1 気象データ集計「夏日カウント」プログラム
- 11.2 プログラムの設計
- 11.3 関数の設計
- 11.4 データの準備
- 11.5 関数の実装
- 11.6 実行とデバッグ