c和指针的一道题目:
1、函数声明 void reverse_string(char* string) 不得改动2、不得声明一个局部数组来临时存储字符串
3、要使用指针操作字符串而不是使用数组下标
4、这也是最纠结的一个部分,原话“函数把参数字符串中的字符反向排列”
初步考虑 首尾替换法 然后指针分别自增 自减 十分简单
可惜char* string 这个属于常量字符串 是不能被修改的
后来考虑到一个变通方法,那就是在子函数中直接输出字符串中的单个字符
因为是逆序,所以想到了递归 但是我这个程序不对呢
程序代码:#include <stdio.h>
void reverse_string(char* string)
{
if(*string==NULL)
{
return;
}
*string++;
reverse_string(string);
printf("%c",(char)*string);
}
int main()
{
char *test="ABC";
reverse_string(test);
return 0;
}
输出为“ CB”多了一个空格 少了一个A









