2.5 再帰

 Cの関数とは、ある1つのまとまったタスク(仕事)を実行する、自己完結したコードブロックでした。これは、プログラムのモジュール化のための機能でもありました。この節では、再帰(recursion)についていくつかの例を見ていきます。

 関数利用の重要な形態の一つに再帰があります。Cの関数は再帰的に利用することが可能です。つまり、関数は自分自身を直接または間接的に呼び出してよいのです。再帰的な問題解決を考えることにより、複雑に思える問題が非常に簡単に解ける場合があります(例:ハノイの塔、迷路探索の左手・右手法、クイックソートアルゴリズム、など多数)。

 再帰的に定義された関数を、再帰関数(recursive function)といいます。また、再帰的に関数を呼び出すことを、再帰呼び出し (recursive call)といいます。