C言語
〜目次〜 組み込みマクロを使う デバッグ作業において便利な機能をもう一つ学びます。 C言語の環境には、 以下のような標準的なマクロが定義されています。 これらのマクロは、 ソースファイルに関する情報をあらわすものです。 #defineを使って定義しなくて…
〜目次〜 デバッグの仕組みについて 条件付きコンパイルの仕組みについて デバッグの仕組みについて 今までで、数多くのコードを入力してきました。 しかし、 コードを作成していく中で、 様々な誤りをおかしてしまう可能性は誰にでもあります。 例えば、 C…
〜目次〜 ランダムアクセスをする コマンドライン引数を使う ランダムアクセスをする ファイルへのアクセス方法について学んでいきます。 これまでのファイルでは、 ファイルの先頭から順番にデータを読み書きしていました。 このように先頭から順番にファイ…
〜目次〜 バイナリファイルに書き込む バイナリファイルを読み込む バイナリファイルに書き込む この時限まで読み書きをしてきたファイルは、 全てテキストエディタで読み書きができるファイルでした。 このようなファイルのことを、 テキストファイル(text…
〜目次〜 ファイルに書式付きで出力する ファイルから1行入力する 大量のデータを入力する ファイルに書式付きで出力する 今回は、キーボードから入力した大学生のテストの点数を、 ファイルに読み込みます。 これを行う際にfputs( )関数のように、 そのまま…
〜目次〜 ファイルの仕組みについて ファイルを1行出力する ファイルの仕組みについて 標準ライブラリ関数を使うと、 画面やキーボードへの入出力をすることができました。 さらにデータを長く保存したり、大量に読み込んだりするには、 ファイルを使ってデ…
〜目次〜 10進数以外で出力する 1行の入出力をする 1文字の入出力をする 10進数以外で出力する 8進数、16進数での出力方法について学びます。 変換仕様を使うことで、 10進数以外の表記で数値を出力することもできます。 実際に以下のコードを入力してくださ…
〜目次〜 ストリームの仕組みついて 書式付きの入出力を行う 出力幅を指定する 精度を指定する 変換仕様を組み合わせる ストリームの仕組みついて 今までの時限で入力したプログラムの中には、 画面に文字や数値を出力したり、 キーボードから入力する処理な…
〜目次〜 共用体型の仕組みについて 列挙型の仕組みについて 列挙型の数値を指定する 列挙型とマクロを比較する 共用体型の仕組みについて 新しい型について学んでいきます。 共用体型(union type) と呼ばれる型は、 構造体型と似たかたちを持っています。…
〜目次〜 構造体の配列を作る 構造体でリストを作る データ構造 構造体の配列を作る 「構造体の配列」を作っていきます。 構造体型は通常の型と同じように扱うことができるので、 構造体の配列を作ることが可能です。 実際に以下のコードを入力して見てくだ…
〜目次〜 ビットフィールドを使う 引数として構造体を使う 構造体へのポインタを引数に使う ビットフィールドを使う 構造体のサイズに影響を与える、 ビットフィールド(bit field) というメンバについて学んでいきます。 構造体のメンバの中には、 取りう…
〜目次〜 構造体を初期化する 構造体に代入する 構造体型のサイズを知る 構造体を初期化する 構造体を宣言した後に、 ドット演算子を使ってメンバに値を代入する方法について、 学びました。 この宣言と値の代入を構造体でもまとめることができます。 そのこ…
〜目次〜 構造体型の仕組みについて 新しく決めることができる型として、 構造体型(structure type) というものがあります。 この型は、 異なる型の値をまとめて新しい型にする という機能を持っています。 車で例えると、 ナンバー(int型)、ガソリン量(do…
〜目次〜 関数ポインタの仕組みについて 関数ポインタを宣言する 関数ポインタを利用する。 関数ポインタを応用する 関数ポインタの仕組みについて さらに高度なポインタの使い方について学んでいきます。 関数の処理内容は、 C言語のプログラムをコンパイル…
〜目次〜 文字列を比較する 文字列の長さを実行時に決める 動的なメモリの確保 文字列を比較する 文字列を比較することができる、 strcmp( )関数 という関数を使ったコードを入力してみます。 この関数は、引数として2つの文字列が渡されると、 文字列1と文…
〜目次〜 文字列配列の配列 文字列ポインタの配列 標準ライブラリ関数を使う 文字列の長さを調べる 文字列を配列にコピーする 文字列を連結する 文字列配列の配列 文字列をさらに高度に使っていきます。 プログラムの中では、 複数の文字列をまとめて配列で…
〜目次〜 ポインタに[ ]演算子を使う 文字列をポインタで使う 配列とポインタの違いについて ポインタに[ ]演算子を使う 配列名を先頭要素へのポインタとして使う ということができることを学びました。 これとは逆に、 ポインタに[ ]を使って配列のように表…
〜目次〜 ポインタ演算の仕組みについて 配列名を使うときの注意 ポインタを引数として使う ポインタ演算の仕組みについて C言語では、 ポインタが配列に密接な関係を持つとき、 ポインタに対して以下のような演算を行うことができます。 ポインタの演算は、…
〜目次〜 配列要素のアドレスをし知る 配列名の仕組みについて 配列名から先頭要素の値を知る 配列要素のアドレスをし知る C言語では、 ポインタと配列の密接な関係を利用した、 コードを作成する場合があります。 アドレス演算子&を使って、 配列の各要素の…
〜目次〜 実引数を変更したくない場合 まとめ 実引数を変更したくない場合 ポインタを使っても、 必ずしも実引数を変更する必要はありません。 関数の内容によっては、 ポインタを使っていても、 実引数を変更したくない場合もあります。 このようなとき、 …
〜目次〜 動作しない関数 関数に引数を渡す方法 ポインタの使い道 動作しない関数 以下のswap( )という名前の関数を定義してから、 今回の学習をはじめていきます。 swap( )関数は、 引数xとyを交換する処理を行う関数として作成しました。 この関数内では、…
〜目次〜 ポインタから変数の値を知る ポインタについて整理 ポインタに別のアドレスを代入する ポインタに代入しない場合 ポインタを使って変数を変更する ポインタから変数の値を知る ポインタに変数のアドレスが格納されると、 そのポインタから逆にたど…
〜目次〜 アドレスの仕組みについて 変数のアドレスについて ポインタの仕組みについて アドレスの仕組みについて 変数の値がコンピュータのメモリに記憶されることは、 すでに学びました。 C言語には、メモリの位置を直接あらわす 「ポインタ」という機能が…
〜目次〜 関数を宣言する ファイルを分割する 標準ライブラリ関数の仕組みについて ファイルを分割する際の注意 関数を宣言する 関数を使って大きなプログラムを作成していきます。 大きなプログラムを作成する前に、 新しい仕組みについて紹介します。 C言…
〜目次〜 ローカル変数の名前を重ねた場合 グローバル変数の名前を重ねた場合 ローカル変数のバリエーション 変数の記憶寿命について staticをつけると・・・ ローカル変数の名前を重ねた場合 変数の名前と宣言位置には注意してください。 同じ関数内のロー…
〜目次〜 関数形式マクロの仕組みについて 最大値を求めるマクロ 関数形式マクロを使う際の注意 変数の種類について スコープの仕組みについて 関数形式マクロの仕組みについて 関数を使ったコードでは、 関数を使わない場合に比べて、 処理の実行時間に余分…
〜目次〜 戻り値の仕組みついて 戻り値のない関数 合計値を求める関数 最大値を求める関数 再帰 戻り値の仕組みついて 関数では、引数とちょうど逆に、 関数の呼び出し元に、関数本体から特定の情報を返す という仕組みを作成することができます。 関数から…
〜目次〜 引数を使って情報を渡す 引数を渡して関数を呼び出す キーボードから入力する(関数) 複数の引数をもつ関数を使う 引数のない関数を使う 引数を使って情報を渡す 関数は処理をまとめることに加えて、 さらに柔軟な処理を行うことができます。 関数…
〜目次〜 関数の仕組みについて main( )関数 関数を定義する 関数を呼び出す 関数を何度も呼び出す 関数の仕組みについて C言語で複雑なコードを書くようになってくると、 度々行わなければいけない、 一定の処理が出てくる場合があります。 そのような処理…
〜目次〜 文字列と配列の関係について 文字列配列を初期化する 文字列を出力する 配列のまとめ 文字列と配列の関係について 配列を応用した仕組みについて学んでいきます。 今までで何度も登場したC言語の「文字列」は、 配列と深い関わりを持っています。 …