初始时char a[] = "ABCDEFG",调用函数
p1指向A,p2指向G。
开始while循环。
1.s = *p1++
s = p1指向的那个值,然后指针p1自增。即s=A p1指向B。
*p1 = *p2--
把指针P2指向的值赋值给指针p1指向的值。然后指针p2自减。即B变成G。p2指向F。
*p2 = s
将S赋值给指针p2所指的对象。即 F变成A
第一轮循环后char a[] = "AGCDEAG"
2.此时P1指向第一个G,P2指向第二个A。
s = *p1++
s = G p1指向C
*p1 = *p2--
C变成A p2指向E
*p2 = s
E变为G
第二轮循环后char a[] = "AGADGAG"
3.同理
这个程序的主要功能是完成字符串首尾字符交换,从第2个和倒数第二个位置开始
p1=>0,p2=>6
第一步:”ABCDEFG”=》“AGCDEAG”,p1=>1,p2=>5
第二步:”AGCDEAG”=》“AGADGAG”,p1=>2,p2=>4
第二步:”AGADGAG”=》“AGAAGAG”,p1=>3,p2=>3
结束
所以答案是AGAAGAG
同学,你好,你的程序中有错误:
程序的前面帮你修改了一下,但是在 p1 = w 处,不知道你是怎么抄的没有一个w的变量
修改正确后在发来 吧
# include
# include
void fun (char * , int m)
{
char s,*p1,*p2;
p1=w;p2=w+m-1;
whlie (p1
}
int main()
{
chara[]=”ABCDEFG”;
fun (a,strlen(a));puts(a);
}
真能问啊 。。。