请教一下,为什么会是对数组的元素进行逆置呢? p2=w+m-1这个是什么意思,尽量详细解释下,非常感谢!

#include <iostream>
#include<string.h>
using namespace std;
void fun(char *w,int m)
{
char s,*p1,*p2;
p1=w;p2=w+m-1;
while(p1<p2)
{
s=*p1;
*p1=*p2;
*p2=s;
p1++;p2--;
}
}
main()
{
char a[]="123456";
fun(a,strlen(a));
cout<<a<<endl;
}

p1=w; //这里是将字符串数组的首地址赋给指针变量 p1  (等价于:p1=&a[0];)

p2=w+m-1;    //  数组的长度为:m=strlen(a)=6

                      //  w+m-1       相当于 (    0+6-1   )=5    也就是把数组首地址后 第五个地址

            //  赋给指针变量p2

希望对你有帮助!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-15
p1指数组的首项,而p2=w+m-1则是数组的末项,在对p1,p2换值,就是倒置了啊,这是指针的问题,其中指针w在主函数中代表字符数组a,w+m-1就代表数组的第m项,单独的w代表数组首项

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网