書籍概要

プログラミングの教科書

かんたん C言語
[改訂2版]

著者
発売日
更新日

概要

本書は,C言語の文法を基礎から学ぶことのできる初学者向けプログラミング学習書です。丁寧な解説とわかりやすいイラストで,はじめてプログラミングを学習する人も安心して読み進められます。この1冊があれば,C言語の一通りの機能をすべて身につけることができます。学習用途だけでなく,機能や文法を調べたいときに参照するリファレンスとしても活用可能です。 章末には練習問題があるので,学習した内容を確認することもできます。

こんな方におすすめ

  • C言語がよくわからない人

目次

1章 かんたんなプログラムを作る

  • 1-01 プログラム
    • プログラムとは
    • プログラミング言語とは
  • 1-02 C言語
    • C言語とは
    • C言語の規格
  • 1-03 プログラムの作成
    • プログラムの必要性
    • プログラムができるまで
  • 1-04 コードの作成
    • コードの記述に必要なもの
    • プログラミング環境
    • 文字コード
  • 1-05 コードの記述
    • コードを記述する
    • ファイルを保存する
  • 1-06 プログラムの実行
    • コンパイルとは
    • リンク
    • プログラムの実行方法
  • この章のまとめ
  • 章末復習問題

2章 C言語の基本的なルール

  • 2-01 コードの読み方
    • C言語のコードの読み方
    • returnを途中に入れた場合
  • 2-02 プログラムの構成
    • C言語の基本的な構成
    • ブロックとステートメント
    • 関数とは
  • 2-03 読みやすいコード
    • 読みやすいコードを書く
    • 行頭を揃える
    • フリーフォーマット
    • コメントを付ける
    • コードを記述する際の注意点
  • この章のまとめ
  • 章末復習問題

3章 変数

  • 3-01 変数
    • 変数とは
    • 変数とメモリ
  • 3-02 変数の名前
    • 変数に名前を付ける
    • 変数名のルール
  • 3-03 変数の型
    • 変数の種類を決める
    • 変数の代表的な型
    • 変数のサイズ
    • 情報の容量を表す単位
  • 3-04 変数の宣言
    • 変数宣言とは
    • 変数宣言を行う
  • 3-05 変数の代入
    • 代入とは
    • =と代入
    • 変数に値を代入する
    • 代入による値の変更
    • 変数の値をほかの変数に代入する
    • 扱えない値を代入するとどうなるか
  • 3-06 変数の初期化
    • 変数の初期化とは
    • 変数を初期化する
  • 3-07 変数の値を表示
    • printf
    • 改行コード
    • 変換仕様
  • 3-08 データの扱い
    • いろいろなデータ
    • 数値と文字の表現
    • そのほかの数値の表現方法
    • エスケープシーケンス
  • この章のまとめ
  • 章末復習問題

4章 演算子

  • 4-01 演算子とは
    • コンピュータと計算
    • 演算子と被演算子
  • 4-02 四則演算
    • 加算と減算
    • 乗算と除算
  • 4-03 単項演算子
    • 単項演算子とは
    • 単項プラス・マイナス演算子
    • ビット補数演算子
  • 4-04 二項演算子
    • 二項演算子とは
    • 複合代入演算子
    • シフト演算子
  • 4-05 演算子の前置と後置
    • インクリメント演算子・デクリメント演算子
    • インクリメント・デクリメントの前置と後置
  • 4-06 演算の優先順位
    • 計算の順序
    • 演算子の結合規則
  • 4-07 型変換
    • 型と計算
    • 型の変換
    • int型からfloat型への型変換
    • 異なる型への代入
  • 4-08 キャスト
    • キャスト演算子とは
    • キャスト利用の有無における計算結果の違い
    • 同一型同士の計算における注意
  • この章のまとめ
  • 章末復習問題

5章 条件分岐

  • 5-01 条件分け
    • 条件によって行う処理を選択する
    • 真と偽
  • 5-02 論理式
    • 論理式とは
    • 関係演算子
    • 論理式の真偽
  • 5-03 組み合わせ条件
    • 論理演算子とは
    • 論理否定
    • 複雑な論理式
  • 5-04 if文を使った処理の分岐
    • if文
  • 5-05 if-else文を使った処理の分岐
    • if-else文
    • 複数の条件式を持つif-else文
    • 変数と条件分岐
  • 5-06 処理の単位
    • ブロック
    • ブロックを使う場合と省略できる場合
    • ネスト
  • 5-07 そのほかの条件分岐
    • switch文による条件分岐
    • if-else文による,switch文の書き換え
    • switch文と条件文
    • switch文とbreak文
  • この章のまとめ
  • 章末復習問題

6章 繰り返し処理

  • 6-01 繰り返し処理を利用したプログラム
    • 繰り返し処理とは
    • ++を利用した繰り返し処理
  • 6-02 for文
    • for文とは
    • for文を用いたプログラミング
    • カウント変数の宣言位置
  • 6-03 while文
    • while文とは
    • while文を用いたプログラミング
    • for文とwhile文の使い分け
    • 数値で条件式を指定する
  • 6-04 do-while文
    • do-while文とは
    • do-while文とwhile文
  • 6-05 break文
    • 繰り返し処理におけるbreak文
    • break文を用いた繰り返し制御
    • break文の使いどころ
  • 6-06 continue文
    • continue文とは
    • continue文による繰り返しの制御
    • continue文を用いたプログラム
  • 6-07 無限ループ
    • 条件が偽にならない繰り返し
    • 意図された無限ループ
  • 6-08 goto文
    • goto文とは
    • goto文を用いたプログラム
    • 敬遠されがちなgoto文
  • この章のまとめ
  • 章末復習問題

7章 関数

  • 7-01 関数とは
    • 関数と機能
    • C言語の関数
    • printf関数
  • 7-02 関数の定義方法
    • 関数の定義
    • コードの中での関数宣言
  • 7-03 関数の使用方法
    • 関数の呼び出し
  • 7-04 引数と戻り値
    • 引数とは
    • 引数と型
    • 複数の引数を持つ関数
    • 引数のない関数
    • 戻り値
    • 戻り値を持たない関数
    • main関数
  • 7-05 キーボードからの入力
    • ユーザからの入力を受け取るプログラム
    • 整数の入力
    • 小数の入力
    • 文字の入力
    • 無限ループ
  • 7-06 関数による処理のまとめ方
    • 関数をより便利に使うために
    • 関数の分け方と可読性
  • 7-07 プロトタイプ宣言
    • プロトタイプ宣言とは
    • ヘッダーファイル
  • 7-08 変数とスコープ
    • グローバル変数とローカル変数
    • グローバル変数
    • ローカル変数
    • スコープ
    • ローカル変数とグローバル変数の名前付け
  • 7-09 変数の寿命
    • ローカル変数の寿命
    • static変数
  • 7-10 標準ライブラリ関数
    • 標準ライブラリ関数とは
  • この章のまとめ
  • 章末復習問題

8章 配列

  • 8-01 配列とは
    • 大量のデータの格納
    • 変数と配列
  • 8-02 配列の宣言
    • 型と要素数の指定
    • インデックス
  • 8-03 値の代入と初期化
    • 配列に値を格納する
    • 配列の初期化と要素数
    • 配列の使用に関する注意
    • 添字を指定して個々の要素を見る
  • 8-04 配列と繰り返し文
    • for文と配列の組み合わせ
    • 繰り返し処理によるデータの格納
  • 8-05 多次元配列
    • 多次元配列とは
    • 2次元配列の宣言と値の格納
    • 2次元配列への値の代入
    • 2次元配列を用いたプログラミング
  • この章のまとめ
  • 章末復習問題

9章 文字列操作

  • 9-01 文字と文字列
    • 文字とは
    • 文字列とは
  • 9-02 文字列と配列
    • 配列に文字列を入れる
    • 文字列の初期化
    • 多く用いられる記述法
  • 9-03 文字列の表示
    • 文字列の内容を画面に表示する
    • 変換指定子を利用する
  • 9-04 そのほかの文字列操作
    • 標準ライブラリ関数を利用した文字列操作
    • キーボードからの入力
    • string.hの読み込み
    • 文字列の長さを調べる
    • sizeof演算子
    • 文字列を連結する
    • 文字列の比較
  • この章のまとめ
  • 章末復習問題

10章 ポインタ

  • 10-01 メモリとアドレス
    • メモリとアドレス
    • 変数のアドレスを知る
    • 変数の値とアドレス
  • 10-02 ポインタという変数
    • ポインタとは
    • ポインタ変数の宣言
    • ポインタと型
  • 10-03 アドレスの格納
    • ポインタ変数にアドレスを格納する
  • 10-04 ポインタから変数の値を参照する
    • アドレスから値を参照する
    • &演算子と*演算子
  • 10-05 配列とポインタ
    • 配列とアドレス
    • 配列要素とアドレス
    • 配列のアドレスから値を調べる
  • 10-06 文字列とポインタ
    • ポインタを利用して文字列を格納する
    • ポインタによる文字列の格納
    • 複数の文字列の管理
  • 10-07 関数とポインタ
    • 関数とポインタ
    • 値渡し
    • ポインタ渡し
    • ポインタの使い道
  • 10-08 配列と引数
    • 配列を引数に指定する
    • 配列はポインタ渡し
    • ポインタと引数
    • ポインタと[ ]
  • この章のまとめ
  • 章末復習問題

11章 ファイル入出力

  • 11-01 ストリームの概念
    • ストリームとは
  • 11-02 入出力の書式
    • 変換指定子
    • 出力幅の指定
    • 桁数の指定
  • 11-03 ファイル入出力の流れ
    • 引数のポインタ渡し(復習)
    • ファイル操作の手順
    • ファイルのオープン
    • ファイルオープンの確認
    • ファイルのクローズ
    • ファイル操作のオープンとクローズ処理の確認
    • ファイルの確認
  • 11-04 ファイル出力
    • ファイルへの出力とは
    • 書式付きの出力
    • 追記モード
  • 11-05 ファイル入力
    • ファイル読み込みの流れ
    • さまざまなオープンモード
  • 11-06 ランダム・アクセス
    • ファイルの順次読み込み
    • バイナリ・ファイル
    • バイナリ・ファイルの読み込み
    • ランダム・アクセス
  • この章のまとめ
  • 章末復習問題

12章 構造体

  • 12-01 構造体とは
    • 構造体の概念
    • 変数とデータの管理
  • 12-02 構造体の定義と宣言
    • 新しい型の作成
    • 構造体の変数宣言
  • 12-03 構造体変数の初期化と値の代入
    • 構造体の各メンバへのアクセス
    • 構造体の初期化
    • 構造体同士の代入
  • 12-04 構造体の名前付け
    • 構造体の名前
    • 構造体の定義とtypedef
  • 12-05 構造体の入れ子
    • データの性質と構造
    • 入れ子の構造体のメンバへのアクセス
    • 入れ子構造の構造体の初期化
  • 12-06 構造体と引数
    • 呼ばれる関数(仮引数として構造体を受け取る側)
    • 呼び出し側(実引数として構造体を渡す側)
    • 引数に構造体を指定する
    • 構造体のポインタを引数として渡す
  • 12-07 構造体と配列
    • 効果的な構造体の利用法
    • 構造体配列
  • この章のまとめ
  • 章末復習問題

13章 その他の型

  • 13-01 共用体
    • 共用体とは
    • 共用体と構造体の違い
    • 共用体の定義
  • 13-02 共用体の利用
    • 共用体とメモリ
    • 異なる型同士のメンバ変数
  • 13-03 構造体と共用体
    • 構造体と共用体の組み合わせ
  • 13-04 列挙体
    • 列挙体とは
    • 列挙体の定義
    • 列挙体の宣言
    • 列挙体の利用
    • 各定数の初期化
  • この章のまとめ
  • 章末復習問題

14章 プリプロセッサ

  • 14-01 プリプロセッサとは
    • #から始まる文
    • プリプロセッサの種類
  • 14-02 マクロの定義
    • 事前定義済みのマクロ
    • マクロとは
    • マクロを使ううえでの注意
    • マクロを利用した処理
  • 14-03 マクロの有効な利用法
    • マクロを利用しない場合
  • 14-04 条件付きコンパイル
    • デバッグとは
    • printf文デバッグ
    • 条件付きコンパイルの利用
    • undefとifndef
  • この章のまとめ
  • 章末復習問題

15章 実践的なプログラミング

  • 15-01 うるう年判定プログラム
    • 実用的なプログラムの作成
    • うるう年を判定する流れ
    • うるう年を判定するプログラム
  • 15-02 住所録関数
    • 住所録の管理
    • 住所録を管理する構造体
    • 住所録にデータを追加する
    • 住所録からデータを読み込む
    • 住所録からデータを検索する
    • 住所録プログラムの実行

付録 C言語の開発環境の構築

  • A Microsoft Visual Studio Community 2017での環境構築
    • Microsoft Visual Studio Community 2017とは
    • VS Communityのインストール
    • VS Communityによるプログラムの作成と実行
    • 補足
    • ヘッダーファイルの追加方法
  • B MinGWにおけるC言語の開発環境の構築と実行
    • GCCのインストール
    • MinGWによるプログラムの作成と実行
    • ヘッダーファイルの追加方法
  • C LinuxにおけるC言語の開発環境の構築と実行
    • GCCの確認と実行
    • ヘッダーファイルの追加方法
  • D MacにおけるC言語の開発環境の構築と実行
    • Xcodeのインストール
    • ヘッダーファイルの追加方法
  • E VS Communityにおけるブレークポイントの利用
    • デバッグ
  • F Xcodeにおけるブレークポイントの利用
    • デバッグ
  • 章末復習問題解答

サポート

ダウンロード

本書で解説しているプログラムのサンプルファイルをダウンロードできます。
ダウンロードしたファイルを解凍してご利用ください。

ダウンロード
kantan_c_sample.zip

正誤表

本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。

(2020年4月14日最終更新)

第1刷・第2刷
P.354

str[0]〜str[7]にそれぞれ配列要素にCから¥n(NULL記号)まで
str[0]〜str[7]にそれぞれ配列要素にCから¥0(NULL記号)まで

商品一覧