C语言函数递归题目求正确思路,答疑?
#include<stdio.h>#include<stdlib.h>voidreverse_string(char*str){if(*(++str)!='\0'){re...
#include <stdio.h>
#include <stdlib.h>
void reverse_string(char * str)
{
if(*(++str) != '\0')
{
reverse_string(str);
}
printf("%c", *(str-1));
}
int main()
{
char*ch = "ab";
printf("翻转前的字符串:%s\n", ch);
printf("翻转后的字符串:");
reverse_string(ch);
printf("\n");
system("pause");
return 0;
}
str指向a时,*(++str)!=\0成立,继续调用函数,此时str指向b, ++str 后, *(++str)!=\0不成立,输出字符b;此时str依然指向'\0',是如何输出字符a的?求详细解惑 展开
#include <stdlib.h>
void reverse_string(char * str)
{
if(*(++str) != '\0')
{
reverse_string(str);
}
printf("%c", *(str-1));
}
int main()
{
char*ch = "ab";
printf("翻转前的字符串:%s\n", ch);
printf("翻转后的字符串:");
reverse_string(ch);
printf("\n");
system("pause");
return 0;
}
str指向a时,*(++str)!=\0成立,继续调用函数,此时str指向b, ++str 后, *(++str)!=\0不成立,输出字符b;此时str依然指向'\0',是如何输出字符a的?求详细解惑 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询