以下のコードは私の本であり、再帰呼び出しごとに作成されたスタック フレーム、スタック フレームに格納された値、および返された値を示して、その実行をトレースする必要があります。私が混乱しているのは17行目です。behead(s+1,n-1)
これs
は文字列変数であるため、整数を追加する方法です。この詳細のため、このコードを実行できませんでした。
#define Z 3
string behead( string s, int n );
int main( void )
{
string answer;
char word[] = "distrust";
printf( "\nBeheading the victim: %s?\n", word );
answer = behead( word, Z );
printf( "Now: %s!\n\n", answer );
}
string behead( string s, int n )
{
if (n == 0) return s;
else return behead( s + 1, n - 1 );
}