再帰で C 言語の静的変数を使用する方法
再帰内で静的変数を使用すると、再帰呼び出しを繰り返す間で変数の値を保持することができる。
再帰関数内で、静的変数を宣言すれば、その変数はプログラムの終了まで生存し続けます。
- 再帰関数の外で初期値を指定した静的変数を定義する。
- 静的変数を使えば、再帰関数内で再帰関数にパラメータを渡す必要はなくなります。
- 再帰関数内で静的変数に変更を加えても、関数呼び出しごとにリセットされるのではなく、前回呼び出した時のままの値を保持する。
静的変数を使用した再帰関数の例を以下に示します。
#include <stdio.h>
void recursiveFunction(int n) {
static int count = 0; // 定义静态变量count
if (n > 0) {
count++; // 修改静态变量count的值
printf("Count: %d\n", count);
recursiveFunction(n - 1); // 递归调用函数
}
}
int main() {
recursiveFunction(5);
return 0;
}
日本語にネイティブと同様に言い換えてください、選択肢は 1 つだけでかまいません: 出力結果は:
Count: 1
Count: 2
Count: 3
Count: 4
Count: 5
再帰呼び出しのたびに、静的変数countの値はこれまでの結果を保持し、0に戻りません。これにより、再帰の中で変数の値を不変に保つ効果を実現できます。