再帰で C 言語の静的変数を使用する方法

再帰内で静的変数を使用すると、再帰呼び出しを繰り返す間で変数の値を保持することができる。

再帰関数内で、静的変数を宣言すれば、その変数はプログラムの終了まで生存し続けます。

  1. 再帰関数の外で初期値を指定した静的変数を定義する。
  2. 静的変数を使えば、再帰関数内で再帰関数にパラメータを渡す必要はなくなります。
  3. 再帰関数内で静的変数に変更を加えても、関数呼び出しごとにリセットされるのではなく、前回呼び出した時のままの値を保持する。

静的変数を使用した再帰関数の例を以下に示します。

#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に戻りません。これにより、再帰の中で変数の値を不変に保つ効果を実現できます。

bannerAds