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