【发布时间】:2018-02-19 06:24:32
【问题描述】:
在下面的示例程序中,任何人都可以帮助区分两个函数的输出吗?
根据我的理解,这两个函数的输出应该是相同的。
#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
【问题讨论】:
-
您是否尝试使用调试器单步执行代码?
-
ptr和printf("%c",*ptr);的值是什么?