徐老师,这个第一题要求用递归算法,我在CSDNhttps://blog.csdn.net/qq_43765564/article/details/85345448上找到了一个类似的代码,但是其中void函数需要调用一个指针不是很理解这个含义,老师能否帮忙看一下这段代码?感谢感谢
徐老师,这个第一题要求用递归算法,我在CSDNhttps://blog.csdn.net/qq_43765564/article/details/85345448上找到了一个类似的代码,但是其中void函数需要调用一个指针不是很理解这个含义,老师能否帮忙看一下这段代码?感谢感谢
Comments
*string = *(string + len - 1);
*(string + len - 1) = '\0';
reverse(string + 1);
*(string + len - 1) = temp;
这里递归函数的目的是逆置字符串。
第1,2,5行就是交换头尾两个字符;
第2行把末尾置'\0',相当于缩短字符串;由于需要缩短字符串,所以原来的头字符就先暂存到temp中(第1行),在完成中间字符串逆置后,再将头字符放到末尾位置上(第5行);
第3行从第2个字符作为字符串的开始,递归调用,实现字符串逆置。
写成数组元素形式:
char temp = string[0];
string[0] = string[len - 1];
string[len - 1] = '\0';
reverse(&string[1]);
string[len - 1] = temp;