C言語によるプログラミング―スーパーリファレンス編

  • ポイントキャンペーン

C言語によるプログラミング―スーパーリファレンス編

  • ただいまウェブストアではご注文を受け付けておりません。
  • サイズ B5判/ページ数 542p/高さ 26cm
  • 商品コード 9784274063374
  • NDC分類 007.64
  • Cコード C3000

出版社内容情報

【セールスポイント】
すぐに役立つ! C言語文法書の決定版!

【発刊の目的と内容】
 好評既刊書『C言語によるプログラミング -基礎編-』『C言語によるプログラミング -応用編-』の続編がいよいよ登場。本書は、C言語の文法や構文規則、標準ライブラリなどの仕様について、体系的かつ実用的に解説する。各解説の理解を助けるために図解を多用し、また実用的なプログラミングを行う際のヒントやつまずきやすい点を詳しく紹介しているので、C言語の初心者はもちろん、日常的にプログラミングを行っている方まで、幅広く対応した内容である。

【購読対象者】
C言語の初心者から、日常的にプログラミングを行っている方まで

【詳細目次】
1 C言語文法の概要とプログラムの構成
 1.1 C言語文法とその範囲
 1.2 ソースファイルとその名前 
  1.2.1 ソースファイルの構成 
  1.2.2 ソースファイル名の命名
 1.3 翻訳単位とリンク処理 
 1.4 ソースプログラムの書き方 
  1.4.1 ソースプログラムを構成する文字 
  1.4.2 行の連結 
 1.4.3 文字列リテラルの連結 
 1.4.4 文字列リテラルの長さ 
 1.4.5 注釈(コメント)の記述

2 翻訳環境と実行環境
 2.1 環境とコンパイラの位置付け 
 2.2 翻訳環境:コンパイルおよびリンクの過程 
 2.3 実行環境 
 2.4 プログラムの開始と終了(ホスト環境) 
  2.4.1 プログラムの開始 
  2.4.2 プログラムの終了 

3 文字
 3.1 文字集合 
  3.1.1 基本文字集合と拡張文字集合 
  3.1.2 ソース文字集合と実行文字集合 
 3.2 3文字表記 
 3.3 非図形文字のプログラム上での表現 
 3.4 文字の順序 
 3.5 拡張文字集合 

4 字句
 4.1 字句と前処理字句 
 4.2 前処理数 

5 識別子
 5.1 識別子の概要 
 5.2 識別子の種類 
 5.3 予約済み識別子 
  5.3.1 予約済み識別子 
  5.3.2 今後のライブラリの拡張に基づく予約済み識別子

6 キーワード
 6.1 キーワード(予約語) 

7 定数
 7.1 概要 
 7.2 整数定数 
  7.2.1 整数定数の構文 
  7.2.2 整数定数に対する接尾語 
 7.3 文字定数 
  7.3.1 単純文字定数とワイド文字定数 
  7.3.2 単純拡張表記 
  7.3.3 8進拡張表記・16進拡張表記 
  7.3.4 文字定数の値 
 7.4 浮動小数点定数 
 7.5 列挙定数 
  7.5.1 概要 
  7.5.2 列挙定数の値 

8 文字列リテラル
 8.1 単純文字列リテラルとワイド文字列リテラル 
 8.2 文字列リテラルの文法規則 
  8.2.1 文字列リテラルの結合と0の付加 
  8.2.2 文字列リテラルの操作 
  8.2.3 プログラム中での文字列リテラルの扱い 
  8.2.4 文字列リテラルと文字列 

9 型
 9.1 概要 
 9.2 型の分類 
  9.2.1 オブジェクト型・関数型・不完全型 
  9.2.2 派生型・集成体型・派生宣言子型・スカラ型 
  9.2.3 算術型の概要 
  9.2.4 その他の型 
 9.3 算術型の詳細 
  9.3.1 汎整数型:char、short、int、longの詳細 
  9.3.2 列挙体の詳細 
  9.3.3 浮動小数点型の詳細 
 9.4 不完全の詳細  
  9.4.1 不完全型の配列 
  9.4.2 不完全型の構造体 
 9.5 派生型 
  9.5.1 派生型の概要 
  9.5.2 型分類 
  9.5.3 派生の際のオブジェクト型、不完全型の分類 
  9.5.4 個々の派生の実際 
 9.6 修飾版 
 9.6.1 修飾版の概要 
 9.6.2 修飾版の宣言の方法とその実例 
 9.7 型の適合と合成 
 9.7.1 適合型 
 9.7.2 合成型 

10 宣言と定義
 10.1 概要 
 10.1.1 宣言と定義 
  10.1.2 宣言や定義によってプログラム中に示せる識別子 
 10.1.3 オブジェクト・関数・関数原型に対する属性 
 10.1.4 有効範囲、生存期間、結合、名前空間 
 10.2 属性 
  10.2.1 記憶域クラス 
 10.2.2 型 
 10.2.3 型修飾子 
 10.2.4 派生型
 10.2.5 初期値 
 10.3 識別子の有効範囲 
 10.3.1 有効範囲とは 
 10.3.2 関数有効範囲 
 10.3.3 ファイル有効範囲 
 10.3.4 ブロック有効範囲 
 10.3.5 関数原型有効範囲 
 10.3.6 有効範囲によるオブジェクトのマスク 
 10.4 記憶域期間 
 10.4.1 静的記憶域期間と自動記憶域期間 
 10.4.2 静的記憶域期間の記憶域の割り付けと初期化 
 10.4.3 自動記憶域期間の記憶域の割り当てと初期化 
 10.4.4 静的記憶域期間と自動記憶域期間の違い 
 10.4.5 registerオブジェクトの記憶域期間 
 10.4.6 記憶域割り当ての実際 
 10.4.7 自動記憶域期間の落とし穴 
 10.4.8 自動記憶域期間と再帰プログラミング 
 10.5 結合 
 10.5.1 結合とは 
 10.5.2 結合の実際 
 10.5.3 外部結合の注意事項 
 10.5.4 その他の注意事項 
 10.6 名前空間 
 10.6.1 概要 
 10.6.2 宣言子・列挙子・型名の名前空間 
 10.6.3 タグの名前空間 
 10.6.4 メンバの名前空間 
 10.6.5 名札名 
 10.7 実例による説明とアクセス法 
 10.8 宣言の構文 
 10.8.1 宣言指定子列と初期化宣言子並び 
 10.8.2 記憶域クラス指定子 
 10.8.3 型指定子 
 10.8.4 型修飾子 
 10.8.5 構造体共用体指定子 
 10.8.6 列挙型指定子 
 10.8.7 宣言子 
 10.8.8 型名 
 10.8.9 宣言における括弧の扱い 
 10.9 typedef 
  10.9.1 typedefの構文とその使い方 
  10.9.2 さまざまなtypedef 

11 演算子
 11.1 演算子の概要と用語の定義 
 11.1.1 はじめに 
 11.1.2 左辺値と式の値 
 11.1.3 汎整数拡張 
 11.1.4 算術型の型変換:整数型同士の代入時の型変換 
 11.1.5 算術型の型変換:浮動小数点型と整数型の混合演算と暗黙の型変換 
 11.1.6 算術型の任意の型変換 
 11.2 演算子とその優先順位および結合規則 
 11.3 演算子の詳細 
 11.3.1 関数呼び出し・配列・メンバ 
 11.3.2 単項演算子 
 11.3.3 乗除演算子 
 11.3.4 加減算演算子 
 11.3.5 シフト演算子 
 11.3.6 関係演算子 
 11.3.7 ビット演算子 
 11.3.8 論理演算子 
 11.3.9 三項演算子 
 11.3.10 代入演算子 
 11.3.11 コンマ演算子 

12 式
 12.1 概要 
 12.2 式の構文:句構造文法 
 12.2.1 句構造文法の説明 
 12.2.2 C言語の式の定義:句構造文法による 
 12.3 式の評価における注意事項 
 12.3.1 全般的な注意事項 
 12.3.2 式の書き方の基本的な注意事項 
 12.3.3 副作用完了点 
 12.3.4 式の評価順序 
 12.3.5 式に関する未定義の項目         

13 定数式
 13.1 定数式の概要 
 13.1.1 定数式の例 
 13.1.2 定数式の種類とそれが記述される場所 
 13.1.3 定数とconst修飾との違い 
 13.1.4 定数と自動記憶域期間を持つオブジェクトとの違い 
 13.2 定数式の種類 
 13.2.1 算術定数式 
 13.2.2 汎整数定数式 
 13.3 初期化に伴う定数およびアドレス定数 

14 初期化
 14.1 初期化とは
 14.1.1 概要 
 14.1.2 初期化が必要な宣言 
 14.1.3 初期化が禁止されている宣言 
 14.2 スカラ型の初期化とその例 
 14.2.1 概要 
 14.2.2 静的記憶域期間を持つスカラ型のオブジェクトの初期化 
 14.2.3 自動記憶域期間を持つスカラ型のオブジェクトの初期化 
 14.3 配列型の初期化とその例 
 14.3.1 概要 
 14.3.2 1次元配列の初期化 
 14.3.3 2次元配列の初期化 
 14.3.4 3次元配列の初期化 
 14.3.5 多次元配列の初期化 
 14.4 構造体型の初期化とその例 
 14.5 共用体型の初期化とその例 
 14.6 ポインタ型の初期化とその例 
 14.7 さまざまな組み合わせの初期化とその例 

15 文
 15.1 文の分類 

16 名札付き文 
 16.1 名札付き文の構文 

17 複合文
 17.1 複合文の構文 
 17.2 複合文の目的と用途 
 17.3 複合文の入れ子とその制限   

18 式文
 18.1 式の構文  

19 空文
 19.1 空文の構文 

20 選択文
 20.1 if文 
  20.1.1 if文の概要 
  20.1.2 if文と複合文 
  20.1.3 if文のプログラムパターン 
 20.2 多岐条件文 
  20.2.1 多岐条件文とは 
  20.2.2 多岐条件文のプログラム例 
 20.3 if文の入れ子  
 20.4 switch文 
 20.5 switch文の一般形式(場合分けの場合) 
 20.6 滝のように実行するswitch文  
 20.7 switch文と列挙型 

21 繰り返し文
 21.1 C言語における繰り返し文の概要  
 21.2 繰り返し文の入れ子と多重ループからの脱出  
 21.3 無限ループの実現法 
 21.4 繰り返し文の記述テクニック 
  21.4.1 while文 
  21.4.2 for文 
  21.4.3 do while文 

22 分岐文
 22.1 概要 
 22.2 goto文 
 22.3 continue文 
  22.3.1 continue文の働き 
  22.3.2 多重ループにおけるcontinue文 
 22.4 break文 
  22.4.1 break文の役割 
  22.4.2 多重ループにおけるbreak文 
 22.5 return文 

23 注釈
 23.1 注釈の概要  
 23.2 文法規則 
  23.2.1 構文 
  23.2.2 記述場所 
  23.2.3 コンパイラが注釈を処理するタイミング  
  23.2.4 落とし穴 
  23.2.5 実際の用法 
  23.2.6 注釈の注意点 

24 配列
 24.1 配列とは 
 24.2 配列宣言とその意味 
  24.2.1 1次元配列の定義とその意味 
  24.2.2 多次元配列の宣言 
 24.3 配列に対する操作:sizeof  
 24.4 さまざまな配列の宣言 
  24.4.1 算術型を要素に持つ配列 
  24.4.2 配列型を要素に持つ配列 
  24.4.3 構造体型を要素に持つ配列 
  24.4.4 共用体を要素に持つ配列 
  24.4.5 ポインタを要素に持つ配列 

25 ポインタ
 25.1 ポインタの概念 
  25.1.1 ポインタとは 
  25.1.2 オブジェクトのアドレスの取得 
  25.1.3 ポインタが指しているオブジェクトの値 
  25.1.4 実際にポインタが指せるオブジェクト 
  25.1.5 ポインタの制限 
  25.1.6 voidへのポインタ 
 25.2 ポインタとアドレス演算 
  25.2.1 アドレス演算とは 
  25.2.2 アドレスと整数の加減算の規則 
  25.2.3 アドレスと整数の加減算の意味すること 
  25.2.4 アドレスと整数の加減算の注意点 
  25.2.5 アドレス同士の引算 
  25.2.6 ポインタおよびアドレス演算の結果に適用される演算子 
 25.3 さまざまなポインタ  
  25.3.1 算術型を指すポインタ 
  25.3.2 構造体を指すポインタ 
  25.3.3 共用体を指すポインタ 
  25.3.4 配列を指すポインタ 
  25.3.5 関数を指すポインタ 
  25.3.6 ポインタを指すポインタ  
  25.3.7 ポインタ配列を指すポインタ 
 25.4 ポインタと配列 
  25.4.1 ポインタと1次元配列 
  25.4.2 ポインタと2次元配列 
  25.4.3 ポインタと3次元配列 
 25.5 ポインタとn次元配列 
  25.5.1 n次元配列の構造 
  25.5.2 配列名と解釈およびsizeofとアドレス演算子の適用 
  25.5.3 配列名の解釈および関節演算子の適用 
  25.5.4 配列表現を持つ意味 
  25.5.5 実例 
 25.6 記憶域管理関数メモリ割り当てとその応用 

26 関数 
 26.1 概要  
  26.1.1 関数の種類 
  26.1.2 関数の返す例 
  26.1.3 実引数と仮引数 
  26.1.4 関数の構文:例を通して 
  26.1.5 関数原型の概要 
 26.2 関数の構文 
  26.2.1 関数の構文定義 
  26.2.2 さまざまな関数の例 
 26.3 関数の呼び出しとパラメータの処理 
  26.3.1 関数の呼び出し 
  26.3.2 仮引数の処理 
 26.4 main関数の構造 
  26.4.1 main関数の開始処理 
  26.4.2 main関数の終了 
  26.4.3 void関数のmain処理  
 26.5 再帰的関数 

27 構造体・共用体
 27.1 概要 
  27.1.1 構造体変数とその宣言 
  27.1.2 typeofによる宣言 
  27.1.3 構造体を指すポインタ 
  27.1.4 構造体と関数 
  27.1.5 構造体と分割コンパイル 
 27.2 構造体の宣言構文 
 27.3 構造体の記憶域割り当て 
 27.4 ビットフィールド 
 27.5 その他の構造体に関する文法事項 
  27.5.1 自己参照構造体 
  27.5.2 構造体のメンバとしての関数の指定 
  27.5.3 異なるファイル(翻訳単位)での構造体・共用体の扱い 

28 前処理指令
 28.1 概要 
 28.2 前処理指令を記述する際の全般的な注意事項 
  28.2.1 前処理指令の記述は1行 
  28.2.2 前処理指令の記述位置  
 28.3 マクロ 
  28.3.1 マクロの概要 
  28.3.2 オブジェクト形式マクロ 
  28.3.3 関数形式マクロ 
  28.3.4 マクロ定義無効 
 28.4 ソースファイル取り込み 
 28.5 条件付き取り込み 
  28.5.1 条件付き取り込みの概要 
  28.5.2 条件付き取り込みの構文の概要 
 28.6 その他の前処理指令 
  28.6.1 表示指令:#error 
  28.6.2 行制御:#line 
  28.6.3 プラグマ指令:#pragma 
  28.6.4 空指令:# 
 28.7 あらかじめ定義されたマクロ名  

ライブラリ編
1 プログラム診断<assert.h>
1.1 assert() -プログラム診断-

2 文字の分類<ctype.h>
2.1 isalnum() -英数字判定-
2.2 isalpha() -英字判定-
2.3 iscntrl() -制御文字判定-
2.4 isdigit() -数字判定-
2.5 isgraph() -図形文字判定-
2.6 islower() -英小文字判定-
2.7 isprint() -印字可能文字判定-
2.8 ispunct() -記号文字判定-
2.9 isspace() -空白類文字判定-
2.10 isupper() -英大文字判定-
2.11 isxdigit() -16進数判定-
2.12 tolower() -英小文字変換-
2.13 toupper() -英大文字変換-

3 エラーコード検査<errno.h>
3.1 EDOM 
3.2 ERANGE
3.3 errno
3.4 実例

4 浮動小数点型の属性検査<float.h>

5 整数型の属性検査<limit.h>

6 異文化の習慣文化<locale.h>
6.1 LC_ALL
6.2 LC_COLLATE
6.3 LC_CTYPE
6.4 LC_MOETARY
6.5 LC_NUMERIC
6.6 LC_TIME
6.7 NULL
6.8 lconv
6.9 localeconv() -地域変数取得-
6.10 setlocale() -地域設定-
6.11 サンプルプログラム

7 一般的数学関数<math.h>
7.1 HUGE_VAL
7.2 acos() -逆余弦-
7.3 asin() -逆正弦-
7.4 atan() -逆正接-
7.5 atan2() -逆正接-
7.6 ceil() -天井値-
7.7 cos() -余弦-
7.8 cosh() -双曲線余弦-
7.9 exp() -累乗-
7.10 fabs() -浮動小数点絶対値-
7.11 floor() -小数点以下切り捨て-
7.12 fmod() -実数剰余-
7.13 frexp() -指数分解-
7.14 ldexp() -指数積載-
7.15 log() -自然対数
7.16 log10() -常数対数-
7.17 modf() -小数部分離-
7.18 pow() -累乗-
7.19 sin() -正弦-
7.20 sinh() -双曲線正弦-
7.21 sqrt() -非負の平方根-
7.22 tan() -正接-
7.23 tanh() -双曲線正接-

8 非局所分岐<setjmp.h>
8.1 jmp_buf
8.2 longjmp() -非局所分岐
8.3 setjmp() -分岐場所設定-

9 シグナル処理関数<signal.h>
9.1 シグナル番号
9.2 シグナル設定マクロ
9.3 SIG_ERR
9.4 raise() -シグナル送信-
9.5 sig_atomic_t
9.6 signal() -シグナル設定-

10 可変個引数操作<stdarg.h>
10.1 va_arg
10.2 va_end
10.3 va_list
10.4 va_start

11 共通定義<stddef.h>
11.1 NULL
11.2 offsetof
11.3 ptrdiff_t
11.4 size_t
11.5 wchar_t

12 入出力定義<stdio.h>
12.1 _IOFBF
12.2 _IOLBF
12.3 _IONBF
12.4 BUFSIZ
12.5 EOF
12.6 FILE
12.7 FILENAME_MAX
12.8 FOPEN_MAX
12.9 L_tmpnam
12.10 NULL
12.11 SEEK_CUR
12.12 SEEK_END
12.13 SEEK_SET
12.14 TMP_MAX
12.15 clearerr() エラー解除-
12.16 fclose() -ファイルクローズ-
12.17 feof() -ファイル終了-
12.18 ferror() -ファイルエラー-
12.19 fflush() -ファイルフラッシュ-
12.20 fgetc() -1文字読み込み-
12.21 fgetpos() -ファイル位置-
12.22 fgets() -1行読み込み-
12.23 fopen() -ファイルオープン-
12.24 fpos_t
12.25 fprintf() -書式付き指定文字列ファイル出力-
12.26 fputc() -ファイルへの文字出力-
12.27 fputs() -ファイルへの文字列出力
12.28 fread() -ファイルからのデータ読み込み-
12.29 freopen() -ファイル再オープン-
12.30 fscanf() -ファイルからの書式付き入力-
12.31 fseek() -ファイル位置移動-
12.32 fsetpos() -ファイル位置情報設定-
12.33 ftell() -ファイルの現在位置取得-
12.34 fwrite() -ファイルのデータ出力-
12.35 getc() -ファイルからの文字取得-
12.36 getchar() -標準入力からの文字取得-
12.37 gets() -標準入力からの文字列読み込み-
12.38 perror() -エラー表示-
12.39 printf() -標準出力への書式付き出力-
12.40 putc() -ファイルの文字出力-
12.41 putchar() -標準出力への文字出力-
12.42 puts() -標準出力への文字列出力-
12.43 remove() -ファイル削除-
12.44 rename() -ファイル名変更-
12.45 rewind() -ファイルポジション先頭移動-
12.46 scanf() -標準入力からの書式付き入力-
12.47 setbuf() -入出力バッファ設定-
12.48 setvbuf() -入出力バッファを設定-
12.49 size_t
12.50 sprintf() -メモリへの書式付き出力-
12.51 sscanf() -メモリからの書式付き入力-
12.52 stderr -標準エラー-
12.53 stdin -標準入力-
12.54 stdout -標準出力-
12.55 tmpfile() -一時ファイルのオープン-
12.56 tmpnam() -一時ファイル名生成-
12.57 ungetc() -入力文字の押し戻し-
12.58 vfprintf() -書式付き指定文字列ファイル出力-
12.59 vsprintf() -書式付き指定文字列メモリ出力-
12.60 出力用書式
12.61 入力用書式

13 ユーティリティ<stdlib.h>
13.1 EXIT_FAILURE
13.2 EXIT_SUCCESS
13.3 MB_CUR_MAX
13.4 NULL
13.5 RAND_MAX
13.6 abort() -異常終了-
13.7 abs() -整数の絶対値-
13.8 atexit() -プログラム終了時の実行関数登録-
13.9 atof() -文字列浮動小数点変換-
13.10 atoi() -文字列の整数への変換-
13.11 atol() -文字列のlong整数への変換-
13.12 bsearch() -二分検索-
13.13 calloc() -メモリ割り当て-
13.14 div() -除算-
13.15 exit() -プログラムの終了-
13.16 free() -メモリの解放-
13.17 getenv() -環境の取得-
13.18 labs() -絶対値-
13.19 ldiv() -除算-
13.20 malloc() -メモリ割り当て-
13.21 mblen() -多バイト文字のバイト数の算出-
13.22 mbstowcs() -文字列変換-
13.23 mbtowc() -多バイト文字からワイド文字への変換-
13.24 qsort()-クイックソート-
13.25 rand() -乱数-
13.26 realloc() -再記憶域再メモリ(割り当て)-
13.27 srand() -乱数の種設定-
13.28 strtod() -文字列の倍精度実数型への変換
13.29 strtol() -文字列からのlong int型への変換-
13.30 strtoul() -文字列からunsigned long intへの変換-
13.31 system() -コマンドの実行-
13.32 wcstombs() -ワイド文字列の多バイト文字列への変換-
13.33 wctomb() -ワイド文字の多バイト文字への変換-

14 文字列操作<string.h>
14.1 NULL
14.2 memchr() -メモリ検索-
14.3 memcmp() -メモリ比較-
14.4 memcpy() -メモリ複写-
14.5 memmove() -メモリ移動-
14.6 memset() -メモリ設定-
14.7 size_t 
14.8 strcat() -文字列連結-
14.9 strchr() -文字列検索-
14.10 strcmp() -文字列比較-
14.11 strcoll() -文字列照合-
14.12 strcpy()-文字列複写-
14.13 strcspn() -非構成文字列長計算-
14.14 strerror() -エラーメッセージ文字列対応-
14.15 strlen() -文字列長を計算-
14.16 strncat() -文字列連結-
14.17 strncmp() -文字列比較-
14.18 strncpy() -文字列複写-
14.19 strpbrk() -文字検索-
14.20 strrchr() -文字後方検索-
14.21 strspn() -構成文字列長計算-
14.22 strstr() -文字列検索-
14.23 strtok() -字句分割-
14.24 strxfrm() -文字列変形-

15 時間<time.h>
15.1 CLOCKS_PER_SEC
15.2 NULL
15.3 asctime() -時刻の文字列への変換-
15.4 clock() -消費プロセッサ時間の取得-
15.5 clock_t
15.6 ctime() -カレンダ時刻のローカル時刻文字列への変換-
15.7 difftime() -カレンダ時刻の減算-
15.8 gmtime() -カレンダ時刻の取得-
15.9 localtime() -現在地域時刻の取得-
15.10 mktime() -カレンダ時刻の取得-
15.11 size_t
15.12 strftime() -時間の書式化-
15.13 time() -現在のカレンダ時刻の取得
15.14 time_t
15.15 struct tm  

索引

内容説明

C言語の文法について、JIS規格(プログラム言語CX3010)に極力準拠して詳細に解説した書籍。C言語を学び始めた初心者から、プロフェッショナルとしてソフトウェア開発に携わるベテランエンジニアまでを対象に、C言語の持つ複雑な文法を多くの側面からなるべく平易に解説する。文法編とライブラリ編に大きく分かれており、文法編では、C言語の文法を概念の大きいものから順に並べて配置し、ライブラリ編では、標準ライブラリをアルファベット順に並べて配置している。

目次

文法編(C言語文法の概要とプログラムの構成;翻訳環境と実行環境;文字;字句;識別子 ほか)
ライブラリ編(プログラム診断;文字の分類;ライブラリ関数エラーコード検査;浮動小数点型の属性検査;整数型の属性検査 ほか)

最近チェックした商品