ポケットリファレンスシリーズC言語 標準文法ポケットリファレンス
[ANSI CISO C99対応]

[表紙]C言語 標準文法ポケットリファレンス[ANSI C,ISO C99対応]

紙版発売

四六判/592ページ

定価2,728円(本体2,480円+税10%)

ISBN 978-4-7741-4610-2

ただいま弊社在庫はございません。

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

「C言語標準ライブラリ関数ポケットリファレンス」の続編で,C言語の文法についてのリファレンスです。文法の解説と構文を,例題をメインにサンプルプログラムを掲載してわかりやすく解説します。C言語でのプログラミング時に文法の詳細を知りたい場合に利用できます。C言語学習のサブテキストとしてもご利用いただけます。

こんな方におすすめ

  • C言語プログラミングの副読本として
  • C言語の文法について詳しく知りたい人

この書籍に関連する記事があります!

C言語のスタンダード「ANSI C」と進化したC言語「ISO C99」
C言語の誕生は1972年頃ですから,40年近く経っている計算になります。

目次

Chapter1 C 言語概論 

  • 1-1 C言語の歴史と規格の変遷
  • 1-2 Cの現況
  • 1-3 Microsoft Visual C++
  • 1-4 MinGW
  • 1-5 Borland C++ Compiler
  • 1-6 規格の言語仕様のカテゴリ
  • 1-7 用語論争
  • 1-8 移植性
  • 1-9 64ビット環境への移行に関する一般的な問題
  • 1-10 Cの欠点

Chapter2 プログラム全体の構成 

  • 2-1 プログラムの構成要素
  • 2-2 予約語:keywords
  • 2-3 識別子:identifiers
  • 2-4 予約済み識別子:reserved identifiers
  • 2-5 日本語の識別子
  • 2-6 main関数
  • 2-7 変数
  • 2-8 オブジェクト:object
  • 2-9 文の書き方
  • 2-10 ブロック
  • 2-11 インデント(字下げ):indentation,indent
  • 2-12 フリーフォーマット(自由書式):free format
  • 2-13 空白による区切り
  • 2-14 カッコによるグループ化
  • 2-15 記号の読みと用途

Chapter3 文(ステートメント) 

  • 3-1 文の分類
  • 3-2 コメント(注釈,/* */):comments
  • 3-3 宣言文:declaration statements(specification statements)
  • 3-4 単純文:simple statements
  • 3-5 if文(if else文)
  • 3-6 ifの例文
  • 3-7 else if文
  • 3-8 else ifの例文
  • 3-9 switch case文
  • 3-10 else ifとswitchの使い分け
  • 3-11 for文
  • 3-12 ループ変数の型
  • 3-13 forの二重ループ
  • 3-14 配列とfor文
  • 3-15 while文
  • 3-16 判定前に処理が必要な場合
  • 3-17 do while文
  • 3-18 whileとdo whileの使い分け
  • 3-19 doの文例
  • 3-20 break文
  • 3-21 continue文
  • 3-22 goto文
  • 3-23 return文
  • 3-24 中間判定型
  • 3-25 フラグ
  • 3-26 例外処理:exception handling

Chapter4 データ型 

  • 4-1 データ型の分類
  • 4-2 定義方法からの分類
  • 4-3 基本型のサイズと値の範囲
  • 4-4 論理型:boolean type
  • 4-5 bool型に適用できる演算子
  • 4-6 boolの使用例
  • 4-7 文字型:character type
  • 4-8 charの型を調べる方法
  • 4-9 文字定数:character constants
  • 4-10 文字と文字コード
  • 4-11 charとint
  • 4-12 文字型の演算
  • 4-13 文字列:string
  • 4-14 文字列リテラル:string literals
  • 4-15 文字列リテラルの連結(コンカチネーション):string concatenation
  • 4-16 文字列リテラルの比較
  • 4-17 文字列の表現方法
  • 4-18 文字列の参照方法
  • 4-19 文字列操作
  • 4-20 文字列操作関数作成上の一般的ルール
  • 4-21 エスケープシーケンス(逆斜線表記,拡張表記):escape sequences
  • 4-22 文字コード:character codes
  • 4-23 メモ帳の文字コード
  • 4-24 日本語の扱い
  • 4-25 マルチバイト文字
  • 4-26 マルチバイト文字列操作関数の作成
  • 4-27 ワイド文字:wide character
  • 4-28 ワイド文字列操作関数の作成
  • 4-29 ワイド文字とマルチバイト文字の変換
  • 4-30 汎用テキストマップ(tchar.h)
  • 4-31 整数型:integer type
  • 4-32 intの種類
  • 4-33 整数型の値の範囲
  • 4-34 符号付き数と符号なし数
  • 4-35 整数の内部表現
  • 4-36 オーバーフロー(桁あふれ):overflow(digit overflow)
  • 4-37 浮動小数点型:floating type
  • 4-38 浮動小数点型の分類
  • 4-39 浮動小数点定数:floating constants,floating point constants
  • 4-40 有効桁数:significant digits(significant figures)
  • 4-41 値の範囲
  • 4-42 浮動小数点数の内部表現
  • 4-43 浮動小数点数の内部誤差
  • 4-44 誤差を考慮したプログラム
  • 4-45 浮動小数点例外:floating-point exception
  • 4-46 基本型をtypedefで定義した「_t」型
  • 4-47 size_t
  • 4-48 ptrdiff_t
  • 4-49 clock_t
  • 4-50 time_t
  • 4-51 sig_atomic_t
  • 4-52 fpos_t
  • 4-53 wchar_t(C95)
  • 4-54 wint_t(C95)
  • 4-55 mbstate_t(C95)
  • 4-56 wctrans_t(C99)
  • 4-57 wctype_t(C99)
  • 4-58 fexcept_t(C99)
  • 4-59 float_t(C99),double_t(C99))
  • 4-60 intN_t,uintN_t(C99)
  • 4-61 int_leastN_t,uint_leastN_t(C99)
  • 4-62 int_fastN_t,uint_fastN_t(C99)
  • 4-63 intptr_t,uintptr_t(C99)
  • 4-64 intmax_t,uintmax_t(C99)
  • 4-65 va_list
  • 4-66 複素数型:complex type
  • 4-67 複素数型で使用できる演算子
  • 4-68 複素数の誤差
  • 4-69 複素数型の配列
  • 4-70 複素数型をメンバに持つ構造体
  • 4-71 標準ライブラリ関数の複素数関数
  • 4-72 複素数型を扱う関数
  • 4-73 型変換:type conversion
  • 4-74 キャスト変換:casting conversion
  • 4-75 代入変換:assignment conversion
  • 4-76 算術型変換(算術変換):arithmetic conversion
  • 4-77 単項変換:unary promotion,unary numeric promotion
  • 4-78 引数の型変換(スタック変換)
  • 4-79 整数型同士の変換
  • 4-80 符号付き数と符号なし数の間の変換
  • 4-81 整数拡張(整数格上げ,インテグラルプロモーション):integer promotion(integral promotion)
  • 4-82 その他の変換

Chapter5 演算子と式 

  • 5-1 演算子の種類
  • 5-2 オペランド(被演算子,被演算数,評価対象物):operand
  • 5-3 優先順位:precedence,priority
  • 5-4 結合規則:associativity
  • 5-5 評価:evaluation
  • 5-6 演算子の強さ:operator's strength
  • 5-7 式:expression
  • 5-8 式の値:value of expression
  • 5-9 式の種類
  • 5-10 定数式:constant expression
  • 5-11 認められる式と認められない式
  • 5-12 式のグループ化(式のグループ分け)
  • 5-13 代入:assignment
  • 5-14 複合代入演算子:compound assignment operator
  • 5-15 左辺値(lvalue,ロケータ値):locator value(left side value)
  • 5-16 算術演算子:arithmetic operator
  • 5-17 条件式(制御式):conditional expression(controlling expression)
  • 5-18 比較演算子:comparison operator
  • 5-19 比較演算におけるオペランドの型
  • 5-20 論理演算子:logical operator
  • 5-21 条件式の書き方
  • 5-22 条件式の値
  • 5-23 浮動小数点型の等価比較関数
  • 5-24 XORを判定する関数
  • 5-25 増分/減分演算子(インクリメント/デクリメント演算子):increment operator/decrement operator
  • 5-26 ビット単位の演算子(ビットごとの演算子):bitwise operator
  • 5-27 ビット単位の論理演算子
  • 5-28 論理演算子とビット単位の論理演算子の違い
  • 5-29 真理値表:truth table
  • 5-30 ビット単位のシフト演算子:bitwise shift operator
  • 5-31 ローテイト
  • 5-32 ビット操作
  • 5-33 sizeof演算子
  • 5-34 キャスト:cast
  • 5-35 符号付き数と符号なし数の比較
  • 5-36 演算過程での型変換
  • 5-37 引数のキャスト
  • 5-38 ポインタの型変更
  • 5-39 条件演算子(? :演算子):conditional operator
  • 5-40 コンマ演算子(,演算子,カンマ演算子,順次演算子):comma operator(sequential-evaluation operator)
  • 5-41 不定な動作を起こすコード

Chapter6 配列 

  • 6-1 配列の宣言:array declaration
  • 6-2 配列の定数式
  • 6-3 配列名:array name
  • 6-4 配列要素:array element
  • 6-5 次元:dimension
  • 6-6 配列の初期化
  • 6-7 文字型配列の初期化
  • 6-8 自動配列:automatic array
  • 6-9 一次元配列
  • 6-10 二次元配列
  • 6-11 三次元配列
  • 6-12 ポインタ配列:pointer array
  • 6-13 配列要素数を関数に渡すためのマクロ
  • 6-14 配列要素のメモリへの割り当て順序
  • 6-15 動的配列:dynamic array
  • 6-16 配列内容の表示関数
  • 6-17 インデックス配列
  • 6-18 メモリ操作関数を使った配列操作

Chapter7 ポインタ 

  • 7-1 ポインタとは
  • 7-2 間接参照
  • 7-3 ポインタのサイズ
  • 7-4 ポインタ値の表示
  • 7-5 ポインタ定数とポインタ変数
  • 7-6 ポインタの宣言
  • 7-7 ポインタの初期化
  • 7-8 staticポインタ
  • 7-9 ポインタの型修飾子
  • 7-10 ポインタ型で使用できる演算子
  • 7-11 ポインタの代入
  • 7-12 ポインタ型の型変換
  • 7-13 ポインタの比較
  • 7-14 ポインタの加減算
  • 7-15 NULL(空ポインタ)
  • 7-16 void *(汎用ポインタ)
  • 7-17 ポインタへのポインタ
  • 7-18 ポインタとメモリ
  • 7-19 ポインタと文字列
  • 7-20 ポインタと配列
  • 7-21 ポインタは必要か

Chapter8 列挙型 

  • 8-1 列挙型の定義
  • 8-2 列挙型と列挙定数のスコープ
  • 8-3 列挙型に適用できる演算子
  • 8-4 caseラベルに使う
  • 8-5 列挙型の配列
  • 8-6 列挙定数名に対応する文字列
  • 8-7 値を表す
  • 8-8 配列の添字に使う
  • 8-9 日本語の列挙型名と列挙定数名

Chapter9 構造体と共用体 

  • 9-1 構造体:structure
  • 9-2 構造体の定義(宣言)
  • 9-3 構造体変数の宣言
  • 9-4 typedefによる構造体の定義
  • 9-5 構造体の名前空間
  • 9-6 構造体の初期化
  • 9-7 メンバ参照演算子
  • 9-8 構造体の代入
  • 9-9 構造体引数
  • 9-10 構造体を返す関数
  • 9-11 構造体配列
  • 9-12 構造体へのポインタ
  • 9-13 自己参照的構造体:self-referential structure
  • 9-14 構造体の穴:structure hole
  • 9-15 構造体の比較
  • 9-16 構造体の複合リテラル
  • 9-17 フレキシブル配列メンバ:flexible array member
  • 9-18 構造体の動的一次元配列
  • 9-19 複素数型を表す構造体
  • 9-20 構造体のソート
  • 9-21 シーケンシャルファイル
  • 9-22 共用体:union
  • 9-23 共用体の定義(宣言):union declaration
  • 9-24 共用体変数の宣言
  • 9-25 共用体メンバの参照
  • 9-26 共用体の初期化
  • 9-27 共用体の利用例
  • 9-28 構造体・共用体のネスト
  • 9-29 ビットフィールド:bit field
  • 9-30 ビットフィールドの幅(ビット幅):bit field width
  • 9-31 ビットフィールドの格納順
  • 9-32 ビットフィールドの符号拡張
  • 9-33 ビットフィールドの利用例

Chapter10 関数 

  • 10-1 関数とは
  • 10-2 関数の分類
  • 10-3 関数定義:function definition
  • 10-4 戻り値(返却値):return value
  • 10-5 関数プロトタイプ:function prototype
  • 10-6 関数呼び出し:function call
  • 10-7 関数へのポインタ:pointer to function
  • 10-8 引数:parameter,argument
  • 10-9 実引数拡張:argument promotion
  • 10-10 引数とスタック
  • 10-11 引数渡しの方法
  • 10-12 配列引数
  • 10-13 可変引数:variable argument
  • 10-14 ユーザ定義型関数
  • 10-15 ポインタ型を返す関数
  • 10-16 2つ以上の値を呼び出し元に返す
  • 10-17 終了コード:termination code
  • 10-18 関数のスコープ:scope of function
  • 10-19 可変長配列引数
  • 10-20 記憶域クラス指定子/型修飾子の指定
  • 10-21 呼び出し規約:calling convention
  • 10-22 インライン関数:inline function
  • 10-23 コマンドライン引数:command-line argument
  • 10-24 標準入出力関数:standard input/output function
  • 10-25 I/Oリダイレクト:Input/Output redirect
  • 10-26 フィルタ(フィルタ型プログラム):filter
  • 10-27 scanfの問題点と対策
  • 10-28 入力バッファーに残った改行コード
  • 10-29 バッファーオーバーラン:buffer overrun
  • 10-30 規定外データの入力
  • 10-31 セキュリティ強化関数
  • 10-32 再帰:recursion

Chapter11 宣言 

  • 11-1 宣言と定義:declaration and definition
  • 11-2 型指定子:type specifier
  • 11-3 void型
  • 11-4 型修飾子:type qualifier
  • 11-5 const型修飾子
  • 11-6 volatile型修飾子
  • 11-7 restrict型修飾子
  • 11-8 初期化:initialization
  • 11-9 複合リテラル(コンパウンドリテラル):compound literal
  • 11-10 指定初期化子(要素指定子):designated initializer
  • 11-11 typedef名(型定義名)

Chapter12 記憶域クラスとスコープ 

  • 12-1 記憶域クラス(記憶クラス):storage class
  • 12-2 記憶域期間(記憶期間,記憶域存続期間):storage duration
  • 12-3 生存期間(寿命):lifetime
  • 12-4 記憶域クラス指定子:storage class specifier
  • 12-5 スコープ(有効範囲,通用範囲):scope
  • 12-6 オブジェクトのスコープ
  • 12-7 その他のスコープ
  • 12-8 可視性:visibility
  • 12-9 変数のスコープと生存期間での分類
  • 12-10 名前空間(名前のクラス):name space(name class)
  • 12-11 識別子の結合:identifier linkage
  • 12-12 分割コンパイル:separate compilation
  • 12-13 前方参照:forward reference

Chapter13 プリプロセッサ 

  • 13-1 プリプロセッサ指令(前処理指令):preprocessing directive
  • 13-2 ファイルの取り込み(ファイルインクルード):file inclusion
  • 13-3 ヘッダファイル:header file
  • 13-4 検索順
  • 13-5 二重インクルード(多重インクルード):double inclusion(multi inclusion)
  • 13-6 プリコンパイル済みヘッダーファイル(PCH):precompiled header file
  • 13-7 マクロ:macro
  • 13-8 オブジェクト形式マクロ(単純なマクロ):object-like macro
  • 13-9 関数形式マクロ(引数付きマクロ):function-like macro
  • 13-10 マクロと関数
  • 13-11 マクロの副作用:macro side effect
  • 13-12 複数行に渡るマクロ定義
  • 13-13 複文のマクロ定義
  • 13-14 関数テンプレート(汎用関数):function template(generic function)
  • 13-15 引数に明示的な型変換キャストを与えるマクロ
  • 13-16 再走査と再置き換え:re-scan and replace
  • 13-17 マクロ定義の無効化
  • 13-18 定義済みマクロ:predefined macros
  • 13-19 定義済み識別子:predefined identifiers
  • 13-20 条件付き取り込み(条件コンパイル):conditional inclusion(conditional compilation)
  • 13-21 行制御:line control
  • 13-22 プラグマ:pragma
  • 13-23 エラー:error

Chapter14 デバッグ法 

  • 14-1 Visual C++のデバッガを使ったデバッグ
  • 14-2 デバッガを使わないデバッグ
  • 14-3 エラーメッセージ
  • 14-4 コンパイルエラー
  • 14-5 リンクエラー
  • 14-6 実行時エラー

著者プロフィール

河西朝雄(かさいあさお)

山梨大学工学部電子工学科卒(1974年)。長野県岡谷工業高等学校情報技術科教諭,長野県松本工業高等学校電子工業科教諭を経て,現在は「カサイ.ソフトウェアラボ」代表。