Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Voidと再帰 | Functions
C基礎

bookVoidと再帰

メニューを表示するにはスワイプしてください

Cにおけるvoid戻り値型

Cプログラミング言語では、特定の戻り値型で宣言された関数は、その型に一致する値を返すreturn文を持つことが期待されます。しかし、関数が何も返す必要がない場合もあります。例えば、単に画面にテキストを表示するだけの場合です。このような場合、関数はvoid型で宣言する必要があります。

Main.c

Main.c

copy
12345678910
#include <stdio.h> void func() { printf("This function returns nothing\n"); } int main() { func(); return 0; }

voidキーワードは、関数が値を返さないことを指定し、ポインタの文脈でも使用できます。void型の変数を宣言しようとすると、コンパイラはどれだけのメモリを割り当てるべきかを理解できないため、エラーになります。

Main.c

Main.c

copy
1234567
#include <stdio.h> int main() { void variable; return 0; }

再帰

C言語は、関数が自分自身を呼び出すことができる機能、すなわち再帰をサポートしています。

再帰は、輪ゴムを伸ばしてから離す動作に例えることができます。これは、階乗の計算などの数学的な操作でよく利用されます。

階乗は、関数をテイラー級数やマクローリン級数に展開して関数値を近似する際によく使われます。

Main.c

Main.c

copy
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 を返します。

question mark

牛乳のボトルを持った女の子が写っている広告を想像してください。このボトルには、同じく牛乳のボトルを持った女の子の写真があり、その小さなボトルにもまた女の子の写真があり……と続きます。この概念は何と呼ばれますか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 5.  6

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 5.  6
some-alt