#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代表数组首项