fc2ブログ

C言語の再帰呼び出し

Cの再帰呼び出しって、何かよく分からん。
いや、自分を呼び出すっちゅーのは分かるんだが、
なーんか今ひとつ実感がなくて。

そういえば書いたことないから分からんのか、と思い、
試しに書いてみた。

# ブログに表示する都合上、スペースが全角スペースに
# なってるけど悪しからず。

#include <stdio.h>

int sum(int number);

int main(void)
{
 printf("%d\n", sum(10));
 return(0);
}


int sum(int number)
{
 int rslt;

 if (number > 1) {
  rslt = sum(number-1) + number;
 } else {
  rslt = number;
 }

 return(rslt);
}




単に1からの和を求めるだけの関数sum。
要するに

sum(n) = sum(n-1) + n
sum(1) = 1

なわけだから、それを実行してるだけ。


んー。何か分かったような気がするぞ。
ソートのプログラムとかで使ってみよう。
pManの由来は?

個人的には
pManのハンネは

Man
*pMan

と変数Manのポインタ型変数pManを定義しているようにしか思えない。

C言語に絡んで、こんなコメントを残しておきました。

2008.04.10 23:24 YaMaNeX #- URL[EDIT]
Re: pManの由来は?

前にも見たな。その意見は。

char Man[LENGTH];
char *pMan;

とかっちゅうことか。
違うぞそれは。もともとはP.manと書いていたし。

つーか、この名前はパソコンに触ったことがない頃に付いたものだから、そもそもそんな由来にはならん。

でも由来は内緒。

2008.04.11 23:23 pMan #s0snXUxw URL[EDIT]

管理者にだけ表示を許可する