苦しんで覚えるC言語

概 要

真面目にC言語を覚えたい初心者向けに、C言語の基本機能を体系立てて習得できるC言語の入門書です。ネットで人気になった同名のC言語講座をサイト運営者自らが書籍化。C言語の入門書はたくさんありますが、苦しんで覚えるC言語はひとつひとつの要素をスローモーションでゆっくり確実に解説していることが特徴です。本書は、はじめてプログラミングやC言語に挑戦する人、既存の入門書ではC言語を習得できなかった人を対象に、C言語の基礎からC言語で使われている機能のうち一部のマニアックな機能を除いた全ての機能をやさしく丁寧に解説しています。最初はわからなくても、はじめからじっくり読み進め、各章に準備された問題を解いていくことで確実にC言語が身につきます。iPhoneアプリ開発のはじめの一歩にもおすすめします。

著者 MMGames
価格 本体2200円(税別)
ISBN 978-4-7980-3014-2
発売日 2011/6/24
判型 A5変
色数 2色
ページ数 480
CD/DVD
対象読者 初級
シリーズ
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

0章 コンピュータとは何か?

0.1 コンピュータとは何か?

0.1.1 現代人とコンピュータ

0.1.2 コンピュータとは

0.1.3 CPUとは?

0.1.4 メモリとは?

0.2 プログラムとは何か?

0.2.1 プログラムとは

0.2.2 単純な文法

0.2.3 明確な意味

0.2.4 まだまだ曖昧

1章 世界最小のプログラム

1.1 何もしないプログラム

1.1.1 C言語の構造

1.1.2 関数の作り方

1.1.3 main関数は特別

1.1.4 プログラムを動作させる

1.2 コンパイラは翻訳ソフト

1.2.1 すべては機械語

1.2.2 プログラミング言語の登場

1.2.3 C言語翻訳ソフト

2章 プログラムの書き方

2.1 書き方のルール

2.1.1 トークン

2.1.2 フリーフォーマット

2.1.3 そのほかのルール

2.2 書き方の慣習

2.2.1 関数の書き方

2.2.2 インデント

2.2.3 コメント

3章 画面への表示

3.1 文字列の表示

3.1.1 どうしても必要

3.1.2 printf関数

3.1.3 どこに書くのか?

3.1.4 説明書の取り込み

3.1.5 お待たせしました

3.2 改行文字

3.2.1 改行問題

3.2.2 エスケープシーケンス

4章 数値の表示と計算

4.1 数値の表示

4.1.1 文字列と数値

4.1.2 数値を表示する

4.1.3 文字列との組み合わせ表示

4.1.4 複数の数値の表示

4.2 基本的な計算

4.2.1 計算とその結果の表示

4.2.2 四則演算子

4.2.3 複雑な式

4.3 数値の種類

4.3.1 さまざまな数値

4.3.2 実数の計算

5章 数値の記憶と計算

5.1 数値を記憶する

5.1.1 記憶の必要性

5.1.2 変数というメモリ

5.1.3 変数の宣言

5.1.4 変数への値の代入

5.1.5 変数を数値の代わりに使う

5.1.6 代入と演算を同時に

5.2 変数の種類

5.2.1 データ型

5.2.2 実数を記憶する変数

5.3 型の変換

5.3.1 整数と実数の混合計算

5.3.2 強制的に変換

5.4 数値の桁そろえ

5.4.1 整数の桁そろえ

5.4.2 コンピュータ的な表示

5.4.3 実数の桁そろえ

6章 キーボードからの入力

6.1 入力用の関数

6.1.1 入力の必要性

6.1.2 scanf関数

6.1.3 数値の入力

6.1.4 複数の入力

6.1.5 簡易シグマプログラム

6.2 入力の恐怖

6.2.1 恐怖の入力ミス

6.2.2 区切り記号のミス

6.2.3 大きすぎる数値

6.2.4 文字列の恐怖

6.2.5 解決法について

7章 比較と判断

7.1 比較を行う文

7.1.1 条件判断

7.1.2 条件判断をする文

7.1.3 比較のための演算子

7.2 比較のための演算子

7.2.1 等値演算子

7.2.2 関係演算子

7.2.3 論理演算子

7.3 複数の処理の実行

7.3.1 複数の処理の必要性

7.3.2 ブロック文

8章 場合分け処理を行う

8.1 2つの場合分け

8.1.1 偽の場合の処理

8.1.2 使い方は同じ

8.1.3 読みやすくする

8.2 3つ以上の場合分け

8.2.1 条件が複数の場合の処理

8.2.2 見やすい書き方

8.3 番号による場合分け

8.3.1 番号と対応させる処理

8.3.2 当てはまらない場合の処理

8.3.3 同様の処理をまとめる

8.3.4 判断力の弱さ

9章 回数が決まっている繰り返し

9.1 繰り返しを行う文

9.1.1 繰り返し動作

9.1.2 回数の表示

9.2 ループ動作の仕組み

9.2.1 初期化と条件

9.2.2 いつまでも…

9.2.3 強制脱出

10章 回数がわからない繰り返し

10.1 回数不明ループ

10.1.1 回数を求めるループ

10.1.2 for文との交換性

10.2 入力チェック

10.2.1 後判定と先判定

10.2.2 入力チェック

11章 関数の作り方

11.1 自作関数を作る

11.1.1 プログラムの部品化

11.1.2 自作関数を作る

11.1.3 プロトタイプ宣言

11.1.4 自作関数を呼び出す

11.2 関数に数値を渡す

11.2.1 引数を持つ関数

11.2.2 関数に数値を渡す

11.2.3 複数の引数

11.3 関数から数値を返す

11.3.1 戻り値を返す関数

11.3.2 戻り値の制限

12章 変数の寿命

12.1 関数内で寿命が尽きる変数

12.1.1 ローカル変数の寿命

12.1.2 同じ名前でも別の変数

12.1.3 関数の独立性

12.1.4 正確にはブロック内

12.2 最後まで生き残る変数

12.2.1 グローバル変数の寿命

12.2.2 すべての関数で共有される

12.2.3 ローカル変数は独立する

12.3 関数内で生き残る変数

12.3.1 静的なローカル変数の寿命

13章 複数の変数を一括して扱う

13.1 複数の変数をまとめて扱う

13.1.1 配列の概念

13.1.2 配列の宣言

13.1.3 配列の取り扱い

13.2 配列の使い方

13.2.1 初期値の代入

13.2.2 全要素の表示

13.2.3 要素数を求める

13.2.4 配列のコピー

14章 文字列を扱う方法

14.1 文字の扱い方

14.1.1 文字列を扱う変数

14.1.2 文字を扱うには

14.1.3 文字コード

14.1.4 文字に対する計算

14.2 文字列を扱う方法

14.2.1 配列にしてしまおう

14.2.2 文字列の初期化

14.3 文字列処理関数

14.3.1 数値への変換

14.3.2 文字列のコピー

14.3.3 文字列の連結

14.3.4 究極の文字列合成関数

14.3.5 文字列の入力

14.3.6 文字数を数える

14.3.7 文字列の比較

15章 ポインタ変数の仕組み

15.1 メモリの仕組み

15.1.1 メモリ?

15.1.2 超巨大な1列ロッカー

15.1.3 CPUのビット数

15.1.4 32ビットのロッカー

15.2 変数とメモリの関係

15.2.1 変数はメモリ上に存在する

15.2.2 メモリ上の番号を表示する

15.2.3 複数の変数の番号

15.2.4 配列の番号

15.3 &付けが必要な変数の正体

15.3.1 &付き変数の正体

15.3.2 すべては値渡しである

15.3.3 scanf関数で&をつける理由

15.4 アドレスを記憶する変数

15.4.1 ポインタという単語

15.4.2 ポインタ型

15.4.3 ポインタ値

15.4.4 ポインタ変数

15.5 ポインタ変数を使ってみる

15.5.1 ポインタ変数の宣言

15.5.2 アドレスを代入する

15.5.3 モードの切り替え

15.5.4 すなわちショートカット

15.6 引数による情報の受け渡し

15.6.1 ポインタ型の引数

15.6.2 配列型の引数

15.6.3 配列型引数の奇妙な性質

15.6.4 アドレスを渡している

15.7 配列とポインタの奇妙な関係

15.7.1 配列のような使い方

15.7.2 ポインタ専用の書き方

15.7.3 古き悪きポインタ演算

15.7.4 アドレスのことは忘れましょう

16章 複数の型をまとめる

16.1 異なる型の変数をまとめる

16.1.1 まとめてデータを扱いたい場合

16.1.2 構造体の使い方

16.1.3 構造体変数自体の処理

16.1.4 構造体の簡潔な宣言

16.2 構造体の引数

16.2.1 構造体で情報を渡す

16.2.2 構造体でもポインタ変数

16.2.3 構造体でもポインタ引数

16.3 構造体の配列

16.3.1 構造体の配列

16.3.2 構造体配列の引数

17章 ファイルの取り扱い

17.1 テキストファイルの読み書き

17.1.1 ファイルの取り扱い

17.1.2 ファイルの開閉

17.1.3 ファイルへの書き込み

17.1.4 ファイルからの読み込み

17.2 バイナリファイルの読み書き

17.2.1 テキストとバイナリ

17.2.2 ファイルの開閉

17.2.3 ファイルへの書き込み

17.2.4 ファイルからの読み込み

17.3 ドラッグへの対応

17.3.1 ドラッグされたファイル名の取得

17.3.2 オプションの解析

18章 マクロ機能

18.1 不変の値の取り扱い

18.1.1 始めから終わりまで不変の値

18.1.2 数値に名前をつける

18.1.3 文字列に名前をつける

18.2 その他の方法による定数

18.2.1 const定数

18.2.2 enum定数

18.2.3 数値指定enum定数

18.3 簡易的な関数の実現

18.3.1 #define疑似命令の高度な機能

18.3.2 マクロという簡易関数

18.3.3 副作用の恐怖

19章 動的配列

19.1 配列を自由自在に作る

19.1.1 配列の欠点

19.1.2 メモリの確保

19.1.3 動的配列の要素数を拡大する

20章 複数のソースファイル

20.1 最小限の分割

20.1.1 複数ファイルを使う理由

20.1.2 ソースとヘッダーファイル

20.1.3 最小限のヘッダーファイル

20.2 分割の定石

20.2.1 変数の共有

20.2.2 extern宣言

20.2.3 ヘッダーファイルの重複防ぎ

21章 キーボード入力

21.1 1行の文字列として入力する

21.1.1 gets関数によるキーボード入力

21.1.2 バッファオーバーラン対策

21.1.3 文字列から数値などを取り出す

Addendum

A 単語と記号

A.1 予約語

A.2 出力変換指定子

A.3 入力変換指定子

A.4 演算子と優先順位

A.5 記憶クラス指定子

A.6 エスケープ文字

A.7 定義済み定数

B 標準ライブラリ関数一覧

B.1 入出力

B.2 汎用

B.3 文字処理

B.4 文字列処理

B.5 数学関数

B.6 時間

B.7 制御

PR

秀和システム