スタックを非常によく理解していると、プログラムでメモリがどのように機能するかを理解でき、プログラムでメモリがどのように機能するかを理解できれば、プログラムでの関数ストアの方法を理解でき、プログラムでの関数ストアの方法を理解できれば、再帰関数の機能と再帰関数がどのように機能するかを理解します。コンパイラーがどのように機能するかを理解します。
スタックの仕組みを説明しましょう。
最初に、関数がスタックにどのように格納されるかを知る必要があります。
ヒープストアの動的メモリ割り当て値。スタックストアの自動割り当てと削除の値。
例で理解しましょう:
def hello(x):
if x==1:
return "op"
else:
u=1
e=12
s=hello(x-1)
e+=1
print(s)
print(x)
u+=1
return e
hello(4)
このプログラムの一部を理解してください:
では、スタックとは何か、スタックパーツとは何かを見てみましょう。
スタックの割り当て:
すべてのローカル変数をロードしたか、スタックからすぐに戻る何かがスタックフレームに関係なく、関数が「戻る」場合、1つ覚えておいてください。これは、再帰関数がベース条件を取得し、ベース条件の後にリターンを置くと、ベース条件がプログラムの「他の」部分にあるローカル変数をロードするのを待たず、すぐにスタックから現在のフレームを返すことを意味します次のフレームがアクティベーションレコードにあることを返します。これを実際に見てください:
ブロックの割り当て解除:
そのため、関数がreturnステートメントを見つけるたびに、スタックから現在のフレームを削除します。
スタック値から戻ると、スタックで割り当てた順序と逆の順序で戻ります。
これらは非常に短い説明であり、スタックと二重再帰についてさらに詳しく知りたい場合は、このブログの2つの投稿を読んでください:
段階的なスタックの詳細
スタックを使用した段階的な二重再帰の詳細