再帰呼び出しについて
C言語について質問があります。
平成13年春の基本情報処理技術者試験に出ていた問題なのですが,
このプログラムの流れが分かりません。
void DrawCurve(int sx, int sy, int x1, int y1, int x2, int y2, int ex, int ey, int len){
int p1x, p1y, p2x, p2y, p3x, p3y;
int p4x, p4y, p5x, p5y, p6x, p6y;
/** 途中省略 **/
DrawCurve(sx, sy, p1x, p1y, p4x, p4y, p6x, p6y, len);
/* ↑を(1)と名付けさせて頂きます */
DrawCurve(p6x, p6y, p5x, p5y, p3x, p3y, ex, ey, len);
/* ↑を(2)と名付けさせて頂きます */
return ;
}
(1)の処理に入ったらDrawCurve関数の先頭に行くと思うのですが,
そうすると(2)の処理とreturnは絶対行われない気がするのです。
それとも(1)の後(2)の処理に行くのでしょうか?
再帰を間違って解釈してるのだと思います。
ご存知の方どうか教えてください。よろしくお願いします。
お礼
「f_a_007」様、またまたありがとうございます。 図解まで頂き感謝です。 映画館で「シルバー優待」を受ける年になると辛いです。 お陰様で解決しました。