Voidと再帰
メニューを表示するにはスワイプしてください
Cにおけるvoid戻り値型
Cプログラミング言語では、特定の戻り値型で宣言された関数は、その型に一致する値を返すreturn文を持つことが期待されます。しかし、関数が何も返す必要がない場合もあります。例えば、単に画面にテキストを表示するだけの場合です。このような場合、関数はvoid型で宣言する必要があります。
Main.c
12345678910#include <stdio.h> void func() { printf("This function returns nothing\n"); } int main() { func(); return 0; }
voidキーワードは、関数が値を返さないことを指定し、ポインタの文脈でも使用できます。void型の変数を宣言しようとすると、コンパイラはどれだけのメモリを割り当てるべきかを理解できないため、エラーになります。
Main.c
1234567#include <stdio.h> int main() { void variable; return 0; }
再帰
C言語は、関数が自分自身を呼び出すことができる機能、すなわち再帰をサポートしています。
再帰は、輪ゴムを伸ばしてから離す動作に例えることができます。これは、階乗の計算などの数学的な操作でよく利用されます。
階乗は、関数をテイラー級数やマクローリン級数に展開して関数値を近似する際によく使われます。
Main.c
1234567891011121314151617181920#include <stdio.h> int factorial(int n) { // if n = 0 or 1, because 0! = 1 and 1! = 1 if (n == 0 || n == 1) return 1; // recursion case else return n * factorial(n - 1); } int main() { int n = 3; printf("factorial(%d) = %d\n", n, factorial(n)); return 0; }
再帰の文脈では、関数は n == 0 || n == 1 の条件を満たすまで自分自身を呼び出し続けます。この条件が満たされると、以降の factorial() 関数呼び出しの結果がアコーディオンを折りたたむように逆順で返されます。ステップ6に到達した時点で、最初の factorial(3) の呼び出しは 6 を返します。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 5. 章 6
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 5. 章 6