以下のサンプルプログラムでは、2つの関数の出力の違いを誰でも助けてくれますか?逆順で文字列を出力するCの再帰ルーチン
私の理解によれば、両方の機能の出力は同じでなければなりません。以下は
#include<stdio.h>
void printRevStr1(char *ptr)
{
if(*ptr)
{
printRevStr1(ptr+1);
printf("%c",*ptr);
}
}
void printRevStr2(char *ptr)
{
if(*ptr)
{
ptr++;
printRevStr2(ptr);
printf("%c",*ptr);
}
}
main()
{
char arr[100]="Stackoverflow";
printRevStr1(arr);
printf("\n");
printRevStr2(arr);
printf("\n");
}
出力、
出力
wolfrevokcatS
wolfrevokcat
デバッガでコードをステップ実行しようとしましたか? –
'printf("%c "、* ptr);の' ptr'の値は何ですか? –