void fun(char *w,int m) {char s,*p1,*p2;p1=w;p2=w+m-1;

问题描述:

void fun(char *w,int m) {char s,*p1,*p2;p1=w;p2=w+m-1;
#include
#include
void fun (char*w,int m)
{char s,*p1,*p2;
p1=w;p2=w+m-1;
while(p1
2个回答 分类:综合 2014-10-21

问题解答:

我来补答
初始:p1 指向数组中第一个字符A,p2指向数组中最后一个字符G
开始循环
第一次:
s得到p1指向的值A后p1向后移一位,指向数组中第二个字符B
p1所指的第二个字符改为p2指向的字符G,p2向前移动一位,指向数组中第六个字符F
p2所指的第六个字符改为s的值A
这次完成后数组值改为:AGCDEAG,p1指向数组第二个字符,p2指向数组中第六个字符
第二次:
s得到p1指向的值G后p1向后移一位,指向数组中第三个字符C
p1所指的第三个字符改为p2指向的字符A,p2向前移动一位,指向数组中第五个字符E
p2所指的第五个字符改为s的值G
这次完成后数组值改为:AGADGAG,p1指向数组第三个字符,p2指向数组中第五个字符
第三次:
s得到p1指向的值A后p1向后移一位,指向数组中第四个字符D
p1所指的第四个字符改为p2指向的字符A,p2向前移动一位,指向数组中第四个字符G(刚刚被改动过)
p2所指的第四个字符改为s的值A
这次完成后数组值改为:AGAAGAG,p1指向数组第四个字符,p2指向数组中第四个字符
循环结束.
 
 
展开全文阅读

补充回答:

第三次两个字符地址相等应该跳出循环啊
网友(59.151.71.*) 2018-12-25

剩余:2000