わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

配列,ポインタ,その次は関数

明日また授業です.前回はポインタの使い方を説明しましたが,今回はそのポインタを使えばどんなことができるかを紹介します.
それで,その次のこと.来週は,関数と変数というテーマで説明します.
関数は,ライブラリ関数*1ではなく,自作関数についての解説です.自分で関数を書くときにはどうするかを整理します.要点はこんなところですか.

  • 最初に*2「戻り値の型 関数名(『型 変数』をカンマで並べる)」と書きます.
  • 引数がないとき,戻り値がないときは,voidを明記します.
  • 呼び出す側の引数は実引数,関数の最初に書く引数は仮引数です.暗黙のうちに,「仮引数=実引数;」の代入がなされます.「ポインタ渡しで参照渡し」なのは,一度その理屈を理解しておきましょう.
  • 関数実行中にreturn文に出くわしたら,その関数の処理は終了で,読み出し元に制御が戻ります.
  • 関数の中で他の関数を呼び出すときは,すでに(ファイルのより上で)定義されていなければなりません.関数の並べ替えが面倒なら,関数プロトタイプを書いておきます.これは,関数定義の最初の行をコピーして,行末に「;」をつけるだけです*3
  • 仮引数を配列形式で書けますが,ポインタ変数となります.

関数だけで書くのが疲れました.変数の使用上の注意と,なぜ関数と変数を一括して説明しているかは,日を改めることにします.

*1:いろいろなライブラリ関数があることは,前処理指令の中で,#includeと連携させて説明しています.

*2:「関数定義の最初の行として」という意味だけでなく,大規模なプログラムを作るときにも,最初に,関数名と入出力のデータ型を明確にしておくということです.

*3:私は,関数定義最初の「{」を独立した行に書いていますが,これを関数定義の1行目の最後に書いている人は,当然,それを削除してから,「;」をつけます.