|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 肚子饿了233 于 2020-12-21 19:09 编辑
#include<string.h>
#include<stdio.h>
void f(char*s,char*t)
{char k;
k=*s;
*s=*t;
*t=k;
s++;t--;
if(*s);f(s,t);
}
main()
{char str[10]="abcdefg",*p;
p=str+strlen(str)/2+1;
f(p,p-2);
printf("%s\n",str);
}
不懂这个p=str+strlen(str)/2+1;代表啥意思?p现在指向了谁?
希望哪位大神看见了能指出详细的解题过程!!!
(小女子QQ:1272804295)
本帖最后由 风过无痕1989 于 2020-12-22 16:02 编辑
昨晚冬至哈,出去玩了,没见你的回复,今天又见你发帖子了,不好意思哈~~
- #include<string.h>
- #include<stdio.h>
- void f(char*s, char*t)
- {
- char k; // 定义一个临时变量
- k = *s; // 将接收到p 的地址的值赋给k
- *s = *t; // 将接收到p-2的地址的值赋给*s
- *t = k; // 将临时变量保存的地址的值赋给*t,完成p、p-2的地址交换
- s++;
- t--;
- if (*s) // 此个多了一个分号,导致无输出的错误
- f(s, t); // 以*s不为结束标志'\0'为条件,递归调用函数
- }
- int main()
- {
- char str[10] = "abcdefg", *p;
- p = str + strlen(str) / 2 + 1; // 定义指针,p指向字符e,p - 2 指向字符c
- f(p, p - 2); // 以 p, p - 2为实参,调用函数
- printf("%s\n", str); // 输出字符数组
- }
复制代码
|
|